检查 SELECT s.* FROM student s, student s2 LEFT JOIN sc c ON s.sid = c.sid LEFT JOIN sc c2 ON s2.sid = c2.sid WHERE s.sid = 1 GROUP BY s.id HAVING COUNT(c.cid) = COUNT(c2.cid);
时间: 2024-04-11 15:30:49 浏览: 95
sql中的left join及on、where条件关键字的区别详解
你的查询语句有一些问题。首先,你使用了旧的隐式连接语法(FROM student s, student s2),这在现代 SQL 中不推荐使用。其次,你在 WHERE 子句中使用了错误的条件(s.sid = 1),这可能导致不正确的结果。最后,你在 GROUP BY 子句中使用了错误的列(s.id 应该是 s.sid)。下面是修正后的查询语句:
SELECT s.*
FROM student s
LEFT JOIN sc c ON s.sid = c.sid
LEFT JOIN sc c2 ON s.sid = c2.sid
GROUP BY s.sid
HAVING COUNT(c.cid) = COUNT(c2.cid);
阅读全文