Mysql 如何选择仅具有n值的id
我有一张学生课程完成情况表,其中包括学生从课程中获得的所有分数。成绩与学生ID配对,我需要选择在任何课程中只取得3分的学生作为他们的成绩 在撰写本文时,我的第一个也是最后一个直觉是这样编写查询:Mysql 如何选择仅具有n值的id,mysql,Mysql,我有一张学生课程完成情况表,其中包括学生从课程中获得的所有分数。成绩与学生ID配对,我需要选择在任何课程中只取得3分的学生作为他们的成绩 在撰写本文时,我的第一个也是最后一个直觉是这样编写查询: SELECT DISTINCT id FROM table WHERE grade = 3; 然而,它会返回所有以3为分数的学生,而不仅仅是那些只以3为分数的学生 我迷路了有两种方法可以解决这个问题。也许最简单的阅读方法是 SELECT DISTINCT id FROM table WHE
SELECT DISTINCT id
FROM table
WHERE grade = 3;
然而,它会返回所有以3为分数的学生,而不仅仅是那些只以3为分数的学生
我迷路了有两种方法可以解决这个问题。也许最简单的阅读方法是
SELECT DISTINCT id
FROM table
WHERE grade = 3
AND id NOT IN (SELECT id FROM table WHERE grade <> 3);
这会让每个人都有一个3,而没有任何非3的
可能还有其他更有效的方法。要知道哪种方法最有效,请分析、解释、分析。。。可以提供帮助。您可以根据ID分组,并检查不是3的分数总和。这是因为在MySQL中,布尔表达式的值在false时为0,true时为1
SELECT id
FROM table
GROUP BY id
HAVING sum(grade <> 3) = 0;