问题一:只选数学,物理,语文的学生, 查询结果如下,写出相应SQL语句;
姓名 选课
---------------------
select * from course
where name in (select name from course where CName in('数学','物理','语文') group by name having count(*)=3)
and name not in(select name from course group by name having count(*)>3)
王五 数学
王五 物理
王五 语文
赵六 数学
赵六 物理
赵六 语文
问题二:同时选了数学,物理,语文的学生, 查询结果如下,写出相应SQL语句
姓名 选课
---------------------
张三 数学
张三 物理
张三 语文
王五 数学
王五 物理
王五 语文
赵六 数学
赵六 物理
赵六 语文
................................
第一题做出来了,麻烦帮我做下第二题,题目下的是结果~!
select name,CName from course where CName = '数学' and name in (select name from course where CName = '物理' or CName = '语文')
union all
select name,CName from course where CName = '物理' and name in (select name from course where CName = '数学' or CName = '语文')
union all
select name,CName from course where CName = '语文' and name in (select name from course where CName = '数学' or CName = '物理')
如果可以谢谢采纳
如果不介意用多个子查询的话可以用这个
select * from course
where name in(select name from course
where CName='数学' and name in(
select name from course
where CName='物理' and name in (
select name from course
where CName='语文')))
select * from course
where name in (select name from course where CName in('数学','物理','语文') group by name having count(*)=3)
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息