如何用SQL查询全部学生都选了人课程号和课程名
学生关系(sno,sname),课程关系(cno,cname,tname),学习关系(sno,cno)以及某位学生没有选的课程名称...
学生关系(sno,sname),课程关系(cno,cname,tname),学习关系(sno,cno)
以及某位学生没有选的课程名称 展开
以及某位学生没有选的课程名称 展开
展开全部
1,全部学生都选了人课程号和课程名
select b.cno,b.cname
from 学生关系 a,课程关系 b,学习关系 c where a.sno=c.sno and b.cno=c.cno
group by b.cno,b.cname having count(*)=(select count(*) from 学生关系)
2,某位学生没有选的课程名称
select a.sname,b.cname
from 学生关系 a,课程关系 b,学习关系 c where a.sno=c.sno and b.cno=c.cno
group by a.sname,b.cname having count(*)<(select count(*) from 课程关系)
我这是列的每个学生没选的,要是查某位学生,加个条件就行
select a.sname,b.cname
from 学生关系 a,课程关系 b,学习关系 c where a.sno=c.sno and b.cno=c.cno
and a.sname='xxx'
group by a.sname,b.cname having count(*)<(select count(*) from 课程关系)
select b.cno,b.cname
from 学生关系 a,课程关系 b,学习关系 c where a.sno=c.sno and b.cno=c.cno
group by b.cno,b.cname having count(*)=(select count(*) from 学生关系)
2,某位学生没有选的课程名称
select a.sname,b.cname
from 学生关系 a,课程关系 b,学习关系 c where a.sno=c.sno and b.cno=c.cno
group by a.sname,b.cname having count(*)<(select count(*) from 课程关系)
我这是列的每个学生没选的,要是查某位学生,加个条件就行
select a.sname,b.cname
from 学生关系 a,课程关系 b,学习关系 c where a.sno=c.sno and b.cno=c.cno
and a.sname='xxx'
group by a.sname,b.cname having count(*)<(select count(*) from 课程关系)
展开全部
全部学生都选的课程号与课程名:
select * from (select C.cno,C.cname,count(1) as total from (select A.*,C.* from 学生关系统 as A,学习关系 as B,课程关系 as C where A.sno=B.sno and B.cno=C.cno ) as t group by C.cno,C.cname) as T where total=(select count(1) from 学生关系 group by sno)
某个学生没有选的课程名称:
select * from 课程关系 where cno no in( select cno from (select A.*,C.* from 学生关系统 as A,学习关系 as B,课程关系 as C where A.sno=B.sno and B.cno=C.cno ) T where sno='某个学生')
select * from (select C.cno,C.cname,count(1) as total from (select A.*,C.* from 学生关系统 as A,学习关系 as B,课程关系 as C where A.sno=B.sno and B.cno=C.cno ) as t group by C.cno,C.cname) as T where total=(select count(1) from 学生关系 group by sno)
某个学生没有选的课程名称:
select * from 课程关系 where cno no in( select cno from (select A.*,C.* from 学生关系统 as A,学习关系 as B,课程关系 as C where A.sno=B.sno and B.cno=C.cno ) T where sno='某个学生')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询