那位侠可以帮忙求解SQL的问题,条件就是最经典的学生表,课程表,选课表。求选课数量大于两门的学生信息

2025-01-02 06:28:57
推荐回答(3个)
回答1:

选课数量大于两门的学生信息:

select * from 学生表
where 学号 in(select 学号 from 选课表 group by 学号 having count(学号)>1)

根据我的理解是同一种意思,因为并存的似乎不存在,学生同时属于计算机系和英语系。语句如下:
select * from 学生表
where 院系=‘计算机系’ or 院系=‘英语系’

回答2:

1
select a.* from 学生表 a,选课表 b,学成表 c where a.学号=b.学号 and b.课号=c.课号 where a.院系='计算机系'

select a.* from 学生表 a,选课表 b,学成表 c where a.学号=b.学号 and b.课号=c.课号 where a.院系='英语系'

2
select a.* from 学生表 a,选课表 b,学成表 c where a.学号=b.学号 and b.课号=c.课号 where a.院系in ('计算机系','英语系')

谁知道有啥区别,问的问题有问题吧,第一个就是让你能在某个地方输入系名吧

顺便问一句,你题目里问的和内容里的不是一个东西吧

回答3:

1) SELECT * FROM 学生表 WHERE 院系 IN ('计算机‘, ’英语系‘)

2)求计算机系和英语系的学生信息
SELECT * FROM 学生表 WHERE 院系 IN ('计算机‘, ’英语系‘)

两个没有区别的,如果非要区别,2应该只是排序上的区别,不过没有明确要求,纯属于吹毛求疵
SELECT * FROM 学生表 WHERE 院系 =计算机‘
UNION
SELECT * FROM 学生表 WHERE 院系= ’英语系‘