Mysql 的having语法

最后的having 有错误吗,我的思路是将 co.c_id相等,得出结果
系统没有报错,但是没有显示结果
为什么呢?
运行到group by 是可以显示结果的

img

select stu. *,group_concat(co.c_id)
from stu
left join sc on stu.s_id = sc.s_id
left join co on sc.c_id = co.c_id
group by stu.s_id
having group_concat(co.c_id)=(select group_concat(co.c_id) AS 课程ID from co);

运行having,得出的是空白

img

  1. 子查询的语法有问题,需要添加group by
  2. 等号 改为 in
  3. 第一个group_concat 是以stu.s_id 作为分组得到结果,确定group_concat(co.c_id) in 在子查询中有值吗?

一个值等于一个集合这是不对的,可以把等号改成in 试试 group_concat(co.c_id) in (select group_concat(co.c_id) AS 课程ID from co);

为啥我认为这个需要自关联