我的返回结果返回所有的正确答案,除了之一,并非错误

问题描述 投票:1回答:1

这是一个家庭作业的问题。我不要求的正确答案,我只是寻求帮助,我是否在正确的方向前进。

提示的是,我返回无论是谁(OR)的学生的名字和姓氏:(a)不是目前就读(不扩招表)或(b)在任何类自己部门内的最低得分。

数据库模式如下:part 1part 2

我想出了是我的SQL查询:

SELECT FIRSTNAME, LASTNAME
FROM STUDENTS
JOIN ENROLLMENTS ON STUDENTS.NETID = ENROLLMENTS.NETID
JOIN COURSES ON COURSES.CRN = ENROLLMENTS.CRN
WHERE STUDENTS.NETID NOT IN (
  SELECT NETID  
  FROM ENROLLMENTS  
) OR
ENROLLMENTS.SCORE IN (
  SELECT MIN(SCORE)  
  FROM ENROLLMENTS  
  WHERE COURSES.DEPARTMENT = STUDENTS.DEPARTMENT  
  GROUP BY ENROLLMENTS.CRN  
);

我尝试使用JOIN条款,以在它们交叉的三个表结合起来。所述NETID是不同给每个学生,鉴定它们在许可登记表。每个类都有一个独特的CRN所以我连他们有课程表,并扩招表之间。

我不知道问题出在哪里,但预期的结果是:

Wbixik Yjepuriluwe

W和Y具有Avamijosu

Jheyiresoxo Bsexedoh

该rusota姆祖祖

但我的结果是:

Wbixik Yjepuriluwe

Zhropop Vduyumi

Jheyiresoxo Bsexedoh

该rusota姆祖祖

寻找任何指导让我重回正轨。

mysql sql
1个回答
1
投票

您可以尝试使用LEFT JOIN

SELECT FIRSTNAME, LASTNAME
FROM STUDENTS
left JOIN ENROLLMENTS ON STUDENTS.NETID = ENROLLMENTS.NETID
JOIN COURSES ON COURSES.CRN = ENROLLMENTS.CRN
where ENROLLMENTS.NETID is null OR
ENROLLMENTS.SCORE IN 
    (SELECT MIN(SCORE) FROM ENROLLMENTS
        WHERE COURSES.DEPARTMENT = STUDENTS.DEPARTMENT
        GROUP BY ENROLLMENTS.CRN
    )
© www.soinside.com 2019 - 2024. All rights reserved.