我有一张学生桌,结构如下。
StudentId StudentName SubjectId
123 Lina 1
456 Andrews 4
123 Lina 3
123 Lina 4
456 Andrews 5
需要编写一个查询来获取studentId,其中subjectid等于1,3且studentid不等于4
Select studentId from student where subject Id='1' and SubjectId ='3' and
subjectId ='4' .
输出studentId应为123
但它没有成功。任何帮助表示赞赏
答案 0 :(得分:2)
最简单的方法是
select StudentId from student
where SubjectId in (1,3,4)
group by StudentId
having count(distinct SubjectId) = 3
答案 1 :(得分:2)
尝试分组:
Select studentId
from student
where subject_Id in ('1', '3', '4')
group by studentId
having count(distinct subject_Id) = 3
注意:如果('1', '3', '4')
字段的类型为(1, 3, 4)
,您可以考虑将subject_Id
更改为int
。
注意2:distinct
内的count
关键字应该用于subject_Id
每个studentId
值{。}}。
答案 2 :(得分:0)
您只能使用1个主题ID,因为您的查询必须使用或代替和 并且不要使用单一课程
从学生中选择studentId,其中学科ID = 1或SubjectId = 3或
subjectId = 4。
尝试一次