gpt4 book ai didi

sql - 选择符合多个条件的行

转载 作者:行者123 更新时间:2023-12-04 14:35:34 25 4
gpt4 key购买 nike

我有一张 table pupil_teachers像这样

+------+----------+------------+
| id | pupil_id | teacher_id |
+------+----------+------------+
| 1 | 100 | 200 |
| 2 | 101 | 200 |
| 3 | 102 | 200 |
| 4 | 102 | 201 |
| 5 | 101 | 201 |
| 6 | 101 | 202 |
| 7 | 103 | 200 |
+------+----------+------------+

查询将检索学生 100、101 和 102 共同拥有的所有教师。所以在这种情况下,它只会是 ID 为 200 的老师。

学生103也有id为200的老师,但不是查询的一部分,我只想查询学生100、101和102。

所以它会开始:
SELECT teacher_id
FROM pupil_teachers
WHERE

我真的不知道下一步要去哪里。显然以下是不正确的
SELECT teacher_id
FROM pupil_teachers
WHERE pupil_id IN (100, 101, 102)

最佳答案

这是使用 Group By 的一种方法和 Having条款

SELECT teacher_id
FROM pupil_teachers
WHERE pupil_id IN (100, 101, 102)
Group by teacher_id
Having Count(Distinct pupil_id) = 3

其它的办法
SELECT teacher_id
FROM pupil_teachers
Group by teacher_id
Having Count(Case when pupil_id = 100 then 1 end) > 0
AND Count(Case when pupil_id = 101 then 1 end) > 0
AND Count(Case when pupil_id = 102 then 1 end) > 0

关于sql - 选择符合多个条件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40448343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com