gpt4 book ai didi

mysql - 如何限制 SELECT 查询中的某些记录

转载 作者:行者123 更新时间:2023-11-29 06:31:09 25 4
gpt4 key购买 nike

好的,我有一个就读多个科目的学生的关系。大多数学生只注册了一年,要么是 2015 年,要么是 2016 年,但我有一个学生是从 2015 年开始注册的科目,但也有一些是 2016 年注册的。我希望能够显示仅在 2015 年注册的学生。然而,当我执行 SELECT 语句时,我还捕获了 2016 年也做过该科目的一名学生。主题代码包括主题完成的年份。

注册关系中的一些数据:

enter image description here

代码:

SELECT s.firstName, d.degreeCode
FROM students s, degrees d, enrolled e
WHERE s.studentID = d.studentID AND s.studentID = e.studentID AND e.subjectCode NOT LIKE '_______16__'
GROUP BY firstName;

因此,我获取了 15 年级学习的所有学生,但我不希望结果表中包含 s3,因为他也在 2016 年学习。

最佳答案

一种方法使用聚合来断言给定学生的学科代码仅出现在一年内。

SELECT s.firstName, d.degreeCode
FROM students s
INNER JOIN degrees d
ON s.studentID = d.studentID
INNER JOIN ENTROLLED e
s.studentID = e.studentID
WHERE
SUBSTRING(e.subjectCode, 8, 2)) = '15' AND
s.studentID NOT IN (
SELECT d.studentID
FROM degrees d
INNER JOIN enrolled e
ON d.studentID = e.studentID
GROUP BY d.studentID
HAVING COUNT(DISTINCT SUBSTRING(e.subjectCode, 8, 2)) > 1
);

关于mysql - 如何限制 SELECT 查询中的某些记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56205975/

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