簡體   English   中英

我的返回結果是返回除一個之外的所有正確答案,沒有錯誤

[英]My return-result is returning all the correct answers except one, with not errors

這是一道作業題。 我不是在尋求正確的答案,我只是在尋求幫助,看看我是否朝着正確的方向前進。

提示是我要返回以下學生的名字和姓氏:(或):(a)當前未注冊(不在注冊表中)或(b)在其所在部門的任何班級中得分最低。

數據庫架構如下: 第1部分 第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 都是不同的,在 Enrollments 表中標識他們。 每個班級都有一個唯一的 CRN,因此我將它們連接到 Courses 表和 Enrollments 表之間。

我不知道問題出在哪里,但預期的結果是:

維比西克·耶普里魯韋

Wtoyi Avamijosu

Jheyiresoxo Bsexedoh

烏勒魯索塔·姆祖祖

但我的結果是:

維比西克·耶普里魯韋

Jropop Vduyumi

Jheyiresoxo Bsexedoh

烏勒魯索塔·姆祖祖

尋找任何指導讓我回到正軌。

您可以嘗試使用左連接

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
    )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM