积极答复者
数据库之间多表查询

问题
答案
-
select a.学号, a.成绩, c.姓名
from 选课表 a join 课程表 b on a.课号 = b.课号 join 学生表 c on a.学号 = c.学号
where b.课程名 = '心理学'
a表 b表
----------------------
aId bId
1 1
2 3
3 4
--a join b on a.aId=b.bId,如果符合条件(bId存在aId数据)联接成功,aId数据1,3
--a left join b on a.aId=b.bId,如果不符合条件(bId不存在aId数据)右边b表所有列为null,aId数据1,2,3(结果行数=左边)
--a right join b on a.aId=b.bId,如果不符合条件(aId不存在bId数据)左边a表所有列为null,bId数据1,3,4(结果行数=右边)
--a full join b on a.aId=b.bId,等于left join、right join合并- 已标记为答案 Irvin518 2009年12月21日 2:57
全部回复
-
一个学生系统数据库 包含 学生表(学号,姓名,年级,课程) 课程表(课号,学号,课程名) 选课表(课号, 学号,年级,成绩)
现在要查询 大4学生选“心理学”的同学的姓名,学号和成绩
请问怎么做啊,,我才上几节SQL的课,还不是很了解,今天预习到 了,想先在这问一下大家,,谢谢了
人就要不断追求才会进步!
select Join 的语法
http://msdn.microsoft.com/en-us/library/aa978304(VS.71).aspx -
select a.学号, a.成绩, c.姓名
from 选课表 a join 课程表 b on a.课号 = b.课号 join 学生表 c on a.学号 = c.学号
where b.课程名 = '心理学'
a表 b表
----------------------
aId bId
1 1
2 3
3 4
--a join b on a.aId=b.bId,如果符合条件(bId存在aId数据)联接成功,aId数据1,3
--a left join b on a.aId=b.bId,如果不符合条件(bId不存在aId数据)右边b表所有列为null,aId数据1,2,3(结果行数=左边)
--a right join b on a.aId=b.bId,如果不符合条件(aId不存在bId数据)左边a表所有列为null,bId数据1,3,4(结果行数=右边)
--a full join b on a.aId=b.bId,等于left join、right join合并- 已标记为答案 Irvin518 2009年12月21日 2:57