gpt4 book ai didi

mysql - 如何编写正确的查询以查找当前不在类(class)中的学生

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:27 25 4
gpt4 key购买 nike

我正在尝试找到可以注册类(class)的剩余学生。为此,我需要找到当前活跃的学生和当前不在类(class)中的学生。但是我认为我正在编写的查询不正确,因为当我运行查询时它一直显示一组空结果,我如何才能找到剩余的能够注册该类(class)的学生?

以下是当前查询:

SELECT  st.StudentId, StudentAlias, StudentForename, StudentSurname
FROM Course c
INNER JOIN Student_Course sc
ON c.CourseId = sc.CourseId
INNER JOIN Student st
ON sc.StudentId = st.StudentId
WHERE (c.CourseId = 1 AND
sc.StudentId IS NULL
AND st.Active = 1)
ORDER BY st.StudentAlias

下面是表格:

学生:(所有学生的列表)

StudentId  StudentAlias  StudentForename  StudentSurname  Active
1 u09382 James Smith 1
2 u83923 John Brooks 1
3 u38292 Karen Bradshaw 0
4 u20039 Chris Cameron 1
5 u39399 Jane Fields 1

类(class):(所有类(class)列表)

CourseId  CourseNo  CourseName
1 INFO121 ICT
2 BUS122 Business and Finance
3 ENG432 English Language

Student_Course:(参加相应类(class)的学生名单)

StudentId  CourseId
1 1
1 3
2 1
4 2
5 2

例如,如果我选择 CourseId = 1,那么它应该显示活跃但显然不在 CourseId = 1 中的学生,这意味着它应该显示这些以下学生是否有可能入读类(class):

4 - Chris Cameron
5 - Jane Fields

最佳答案

试试这个查询

SELECT s.studentId, s.Forename
FROM Student s
WHERE s.studentId NOT IN (SELECT studentId
FROM Student_Course c WHERE c.courseId = 1) AND s.Active = 1

内部子查询返回 courseId =1 的学生,在外部查询中我们过滤这些学生。

关于mysql - 如何编写正确的查询以查找当前不在类(class)中的学生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15156000/

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