Error Code: 1111. Invalid use of group function

艾米吖

关注

阅读 52

2022-02-08

我要选择参加了所有科目的同学信息,这样显示是不对的,因为后面子句中不能直接用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;

精彩评论(0)

0 0 举报