要求:查询编号为2的学生所选的课程,要求 显示 学生的名字 和 课程的名字
三张表如下:
t_student
sno(pk) | sname |
---|---|
1 | jack |
2 | sun |
3 | lucy |
t_course
cno(pk) | cname |
---|---|
100 | c++ |
200 | java |
300 | .NET |
t_stu_cour
sno(fk) | cno(fk) | (sno、cno联合主键pk) |
---|---|---|
1 | 100 | |
1 | 200 | |
1 | 300 | |
2 | 100 | |
2 | 300 | |
3 | 200 | |
3 | 300 |
学生和课程之间的关系,一个学生可以选择多门课程,一门课程可以被多个学生选择
从总表 t_stu_cour 入手,sno 连学生表 得 学生姓名, cno 连 课程表 得 课程名
比较简单, a join b…join c a先和b关联查询,完成之后 a再和c关联
语句如下:
select
s.sname,c.cname
from
t_stu_cour sc
join
t_student s
on
sc.sno=s.sno
join
t_course c
on
sc.cno=c.cno
where
s.sno=2;