sqlsever 使用子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。
时间: 2023-12-25 08:05:38 浏览: 100
假设学生表为student,课程表为course,选课表为sc,可以使用以下SQL语句实现:
SELECT s.sno, s.sname, s.ssex
FROM student s
WHERE s.sno IN (
SELECT sc.sno
FROM sc
WHERE sc.cno IN ('0002', '0005')
)
解释一下这个SQL语句:
- 子查询
SELECT sc.sno FROM sc WHERE sc.cno IN ('0002', '0005')
返回选修了课程编号为0002或0005的学生学号; - 主查询
SELECT s.sno, s.sname, s.ssex FROM student s WHERE s.sno IN (...)
使用子查询结果作为筛选条件,只返回符合条件的学生学号、姓名、性别。
相关问题
sqlsever 使用子查询查找学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。
SELECT 课程编号, 分数 FROM 成绩 WHERE 学号 = '0001' AND 分数 > ( SELECT MAX(分数) FROM 成绩 WHERE 学号 = '0002' )
使用SQLsever 语句查询没有选修2号课程的同学的学号、姓名和系别
可以使用以下 SQL 语句查询没有选修2号课程的同学的学号、姓名和系别:
SELECT 学号, 姓名, 系别 FROM 学生表 WHERE 学号 NOT IN ( SELECT 学号 FROM 选课表 WHERE 课程号 = '2' )
相关推荐
















