查询要求
查找 既学过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将两个表连接起来。