查询要求
查找 既学过2号课程 又学过3号课程的同学的 学号 数据库表如下
SQL代码
SELECT s1
.StudentNumber
FROM SC s1
, SC s2
WHERE
s1
.courseNumber
= 002
AND s2
.courseNumber
= 003
AND s1
.StudentNumber
= s2
.StudentNumber
查询结果
总结
容易错写成
SELECT StudenNumber
FROM SC
WHERE courseNumber
= 2 and courseNumber
= 3
上面的查询语句得到的结果是空,因为一个courseNumber不可能既等于2又等于3, 这涉及到了在反复在一个表中查询
SELECT s1
.StudentNumber
FROM SC
as s1
, SC
as s2
WHERE
s1
.courseNumber
= 002
AND s2
.courseNumber
= 003
AND s1
.StudentNumber
= s2
.StudentNumber
使用as起别名的方式,对同一个表其不同的别名,来对一个表内的数据反复查询, 通过使用s1.StudentNumber = s2.StudentNumber将两个表连接起来。