gpt4 book ai didi

sql - 查找注册了存在学生未通过的先决条件的类(class)的学生

转载 作者:行者123 更新时间:2023-12-01 02:47:49 26 4
gpt4 key购买 nike

有时我会收到语法错误,有时我只是得到错误的结果。
所以我有一个叫做 Enrollment 的表和一个叫做 Prerequisite 的表,它们看起来像:

Enrollment(StudentNo, CourseNo, Term, Section, Mark)
StudentNo and CourseNo are primary keys
Prerequistie(CourseNo, PrereqCourseNo)
CourseNo and PrereqCourseNo are primary keys

所以现在我想找到注册了他/她没有的类(class)的学生
先决条件,即类(class)在先决条件表中有先决条件,而学生没有先决条件。学生没有先决条件
高级类(class),如果有她/她没有注册的先决条件,或
他/她未通过先决条件。如果类(class)标记他/她,则学生不及格
获得小于50。

所以这就是我所拥有的:
SELECT distinct Enrollment.StudentNo, enrollment.CourseNo, prereqNeeded.prereq 
from Enrollment, (SELECT ENROLLMENT.CourseNo, PrereqCourseNo, StudentNo
from enrollment, prerequisite
where ENROLLMENT.CourseNo = PREREQUISITE.CourseNo AND
NOT EXISTS
(SELECT StudentNo, MARK
FROM ENROLLMENT
WHERE enrollment.CourseNo = PrereqCourseNo
AND MARK >= 50)) prereqNeeded
WHERE Enrollment.StudentNo = prereqNeeded.StudentNo
and prereqNeeded.CourseNo = ENROLLMENT.CourseNo

最佳答案

首先,你可能是说
(StudentNo, CourseNo)Primary KeyEnrollment然后
(CourseNo, PrereqCourseNo)Primary KeyPrerequistie
一张表只有一个主键,而且不多。在这种情况下,主键不是单个字段,而是两个字段的组合。

二、是不是Prerequistie Prerequisite ?

关于您的查询,我认为这就是您所需要的(已更新,第一个版本是错误的):

查询可以改写为“查找所有注册类(class)的学生,其中 存在 前提条件是学生具有 不是 通过”

SELECT e.StudentNo, e.CourseNo
FROM Enrollment e
WHERE EXISTS
( SELECT *
FROM Prerequisite p
WHERE p.CourseNo = e.CourseNo
AND NOT EXISTS
( SELECT *
FROM Enrollment ep
WHERE ep.CourseNo = p.PrereqCourseNo
AND ep.StudentNo = e.StudentNo
AND ep.Mark >= 50
)
)

关于sql - 查找注册了存在学生未通过的先决条件的类(class)的学生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6499297/

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