0

我正在尝试获取从未教过课程部分的讲师名单。

我首先选择,我得到一堆结果谁教了一门课程

SELECT w.COURSE_NO,z.SALUTATION, z.FIRST_NAME, z.LAST_NAME,z.ZIP
FROM INSTRUCTOR z , SECTION w
WHERE z.INSTRUCTOR_ID = w.INSTRUCTOR_ID;

但是当我不参加以便我可以看到哪个讲师从未教过课程部分时,它不会给我任何行。

SELECT a.SALUTATION, a.FIRST_NAME, a.LAST_NAME,a.ZIP
FROM INSTRUCTOR a,SECTION b 
WHERE a.INSTRUCTOR_ID = b.INSTRUCTOR_ID AND b.COURSE_NO NOT IN
(SELECT w.COURSE_NO
FROM INSTRUCTOR z , SECTION w
WHERE z.INSTRUCTOR_ID = w.INSTRUCTOR_ID)
ORDER BY a.SALUTATION, a.FIRST_NAME, a.LAST_NAME,a.ZIP;

为什么当我试图选择那些从未参加过课程部分的人时,它没有给我任何行?

4

1 回答 1

2

因为您只得到SECTION. 看起来你想要:

SELECT a.SALUTATION, a.FIRST_NAME, a.LAST_NAME,a.ZIP
FROM INSTRUCTOR a 
WHERE a.INSTRUCTOR_ID NOT IN
(SELECT w.INSTRUCTOR_ID 
FROM SECTION w)
ORDER BY a.SALUTATION, a.FIRST_NAME, a.LAST_NAME,a.ZIP;

或者

SELECT a.SALUTATION, a.FIRST_NAME, a.LAST_NAME,a.ZIP
FROM INSTRUCTOR a 
LEFT JOIN SECTION w ON a.INSTRUCTOR_ID = w.INSTRUCTOR_ID
WHERE w.INSTRUCTOR_ID IS NULL
ORDER BY a.SALUTATION, a.FIRST_NAME, a.LAST_NAME,a.ZIP;
于 2013-10-17T21:30:24.687 回答