永发信息网

有关于SQL查询的问题!

答案:4  悬赏:10  手机版
解决时间 2021-06-02 02:10
  • 提问者网友:我们很暧昧
  • 2021-06-01 12:01

问题一:只选数学,物理,语文的学生, 查询结果如下,写出相应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语句
姓名 选课
---------------------
张三 数学
张三 物理
张三 语文

王五 数学
王五 物理
王五 语文

赵六 数学
赵六 物理
赵六 语文

................................

第一题做出来了,麻烦帮我做下第二题,题目下的是结果~!

最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-06-01 12:42
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 = '物理')


如果可以谢谢采纳
全部回答
  • 1楼网友:冷風如刀
  • 2021-06-01 15:15

如果不介意用多个子查询的话可以用这个

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='语文')))

  • 2楼网友:十鸦
  • 2021-06-01 14:32
select * from course where name in (select name from course where CName in('数学','物理','语文') group by name having count(*)=3)
  • 3楼网友:行雁书
  • 2021-06-01 13:06

我看不出你第一个问题和第二个问题有何区别?

问题一:只选数学,物理,语文的学生

问题二:同时选了数学,物理,语文的学生...

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯