数据库查询至少选修了学生“张斌”选修的所有课程的学生的学号、姓名。实现该查询有几种方法?
时间: 2023-11-10 22:39:15 浏览: 102
C++程序设计——学生选修课程系统
5星 · 资源好评率100%
有两种方法可以实现该查询:
方法一:使用嵌套子查询
SELECT 学号, 姓名
FROM 学生
WHERE 学号 IN (
SELECT 学号
FROM 选修
WHERE 课程编号 IN (
SELECT 课程编号
FROM 选修
WHERE 学号 = (SELECT 学号 FROM 学生 WHERE 姓名 = '张斌')
)
);
方法二:使用联结查询
SELECT DISTINCT 学生.学号, 学生.姓名
FROM 学生, 选修 AS 选修1, 选修 AS 选修2
WHERE 学生.学号 = 选修1.学号
AND 学生.学号 = 选修2.学号
AND 选修1.课程编号 = 选修2.课程编号
AND 选修1.学号 IN (
SELECT 学号
FROM 选修
WHERE 课程编号 IN (
SELECT 课程编号
FROM 选修
WHERE 学号 = (SELECT 学号 FROM 学生 WHERE 姓名 = '张斌')
)
);
阅读全文