其中编号为了方便使用id作为编号,实际运用中编号应该用特定的格式,以上语句中id设置为了主键,保证了编号的唯一性。
第一条查询,查询某个学生的信息;该语句中使用了学号来查询学生的信息,也可改为其他条件。
select s.student_id as 学号,
s.student_name as 姓名,
s.sex as 性别,
s.house_address as 家庭地址,
s.phone as 联系电话,
c.class_name as 班级名称,
m.major_name as 专业名称,
g.grade_name as 年级名称,
d.department_name as 系部名称
from student s left join class c on s.class_id=c.class_id
left join major m on c.major_id = m.major_id left join grade g on m.grade_id=g.grade_id
left join department d on m.department_id=d.department_id
where s.student_id=1
第二条:查询某个辅导员班级的学生成绩
select c.class_name as 班级名称,
s.student_id as 学号,
s.student_name as 姓名,
cr.course_name as 课程名称,
p.performance as 成绩
from class c left join student s on s.class_id=c.class_id
left join performance p on s.student_id=p.student_id
left join course cr on p.course_id =cr.course_id
where instructor ='王子亮’
第三条:查询某个协会的学生,根据协会的名称查询
select mo.mass_organization_name as 协会名称,
s.student_name as 姓名,
s.sex as 性别,
s.house_address as 家庭地址,
s.phone as 联系电话,
c.class_name as 班级名称,
m.major_name as 专业名称,
g.grade_name as 年级名称,
d.department_name as 系部名称
from mass_organization mo left join student s on mo.mass_organization_id=s.mass_organization_id
left join class c on s.class_id=c.class_id
left join major m on c.major_id = m.major_id left join grade g on m.grade_id=g.grade_id
left join department d on m.department_id=d.department_id
where mass_organization_name='音乐协会’
由于没有画图工具,E-R图暂不画出。
结果一
结果二
结果三
没有对照关系,唯一能看到的关系就是年级不同采用不同的编号。如果一定要从sheet2里面抓取,只能是用不同年级顺序抓取,然后赋值给不同的姓名了。
如图示,C2填入下面公式:
=IFERROR(INDEX(Sheet2!B:B,1+SMALL(IFERROR(MATCH(B2&Sheet2!$B$2:$B$20,CONCATENATE(Sheet2!$A$2:$A$20,Sheet2!$B$2:$B$20),),2^20),COUNTIF($B$1:$B2,B2))),"")
数组三键Ctrl+Shift+Enter结束,向下填充。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)