我正在尝试写SQL查询,返回subject_id(结果表),其中primary_skill(学生表)是唯一的。
结果表有列(student_id,subject_id,mark)
我的查询:
SELECT r.subject_id
FROM result r
JOIN student s ON r.student_id = s.student_id
WHERE s.primary_skill IN (SELECT DISTINCT primary_skill
FROM student)
GROUP BY 1;
我有这个结果:
subject_id
1
2
3
4
5
6
7
8
9
10
1001
但是我应该只返回id 1001,因为只有这个科目有唯一的student primary_skill,在其他id中primary skill是重复的。
我做错了什么?如何改善?
2条答案
按热度按时间enxuqcxy1#
请尝试以下操作:
new9mtju2#
如果我没理解错的话,你想要的是只有一种技能的学生的结果。您可以使用
GROUP BY
和HAVING
子句检查技能计数是否等于1。