gpt4 book ai didi

sql - 返回 student_ids,其中每个类别至少有一个

转载 作者:行者123 更新时间:2023-12-02 04:25:40 26 4
gpt4 key购买 nike

假设我们有三个表 students、assignments 和 subjects。我想返回所有 student_id,其中该学生在每个科目中至少完成了一个名为 first_name = 'place' 和 last_name = 'holder' 的学生所拥有的作业。

学生表:

Student_id | first_name | last_name
------------------------------------
1 | place | holder
2 | |
3 | |

主题:

subject_id | name
-----------------
1 | Math
2 | English
3 | Science

作业:

student_id | subject_id
-----------------------
1 | 1
1 | 2
1 | 3
2 | 1
2 | 2
2 | 3
3 | 1
3 | 2

所以,在这种情况下,我希望我的查询结果是:

student_id
----------
1
2

我已经尝试了很多不同的方法,比如使用集合操作和类似的东西,但似乎没有一个能得到完全正确的结果。我不断让所有学生在学生“占位符”已完成作业的任何科目中至少完成一项作业。

最佳答案

您可以使用 SQL Join 获得所需的结果。假设每个主题只有一个作业:

SELECT students.student_id FROM students
INNER JOIN assignments on assignments.student_id = students.student_id
GROUP BY students.student_id
HAVING COUNT(*) = (SELECT COUNT(*) FROM subjects)

关于sql - 返回 student_ids,其中每个类别至少有一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54700522/

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