我要选择参加了所有科目的同学信息,这样显示是不对的,因为后面子句中不能直接用and, group by 之后如果要对其中的量进行限定需要用having而不是group by.
SELECT
s.*
FROM
student s
JOIN
sc ON sc.sid = sc.sid
AND s.sid IN (SELECT
sid
FROM
sc
GROUP BY sid
AND COUNT(cid) = (SELECT
COUNT(cid)
FROM
course))
GROUP BY sid;
下面这个
SELECT
s.*
FROM
student s
JOIN
sc ON sc.sid = sc.sid
AND s.sid IN (SELECT
sid
FROM
sc
GROUP BY sid
HAVING COUNT(cid) = (SELECT
COUNT(cid)
FROM
course))
GROUP BY sid;