使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位

2025-02-23 23:57:50
推荐回答(3个)
回答1:

我不知道他的对不对
白天验证一下

我给你一个看你能看明白不

select s.sn,s.sd from s join
(select s#,count(distinct c#) num from sc group by s#) a
on
a.s#=s.s#
where
a.num=(select count(distinct c#) num from c)

回答2:

这里的count(*)=count(【s#】)是用在having 函数后面的 意思是先用group by对sc表中的[s#]进行排序,然后用having函数选出s#的行数和sc的总行数相等的所有[s#]列的值

可能是这样吧 我表述不清楚或者错误的话请见谅

回答3:

估计是作者够懒
count(S#)当s#不为空才加1,为空则加0
COUNT(*)=COUNT([S#])应该是就是[S#]不为空,估计作者看到有个group by就顺便用了COUNT(*)=COUNT([S#])
语句也可以写成:
SELECT SN,SD FROM S WHERE [S#] IN(SELECT [S#] FROM SC RIGHT JOIN C ON SC.[C#]=C.[C#] where [S#] is not null GROUP BY [S#])