gpt4 book ai didi

Mysql 选择列中仅具有指定值的行

转载 作者:行者123 更新时间:2023-11-29 07:27:05 26 4
gpt4 key购买 nike

嗨,我有一个名为 Student_subject_table 的 mysql 表:

+----+-------------+---------------------+ 
| id | student_id | subject |
+----+-------------+---------------------+
| 1 | 7 | math |
| 2 | 7 | physics |
| 3 | 7 | chemistry |
| 8 | 8 | math |
| 9 | 8 | physics |
| 10 | 8 | chemistry |
| 11 | 8 | biology |
+----+-------------+---------------------+

我正在尝试获取仅以数学、物理和化学为科目的学生的 ID。

我在子句中尝试过:

 select student_id
from student_subject table
where
subject in ('math', 'physics', 'chemistry')
GROUP BY (student_id)

正如预期的那样,我得到了 7 和 8 作为学生 ID。在上表中我只需要student_id = 7。

mysql 有什么办法可以做到这一点吗?

请帮忙。

最佳答案

您可以使用此查询:

select student_id
from student_subject table
group by student_id
having
SUM(subject IN ('math', 'physics', 'chemistry')) = COUNT(DISTINCT subject)
AND COUNT(DISTINCT subject)=3
  • SUM(subject IN ('math', 'physical', 'chemistry')) 对于学生 7 和 8 来说均为 3
  • COUNT(DISTINCT subject) 对于学生 7 来说是 3,对于学生 8 来说是 4

如果(student_id, subject)是唯一的,您可以将COUNT(DISTINCT ...)替换为COUNT(*)

只有 7 号学生会被返回。

关于Mysql 选择列中仅具有指定值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34159648/

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