2017-10-06 66 views
0

使用T-SQL返回課程中沒有學生的課程名稱。T-SQL查詢返回沒有連接的用戶用戶

StudentCourses: 

    StudentCourseID 
    StudentID 
    CourseID 



Courses: 

    CourseID 
    CourseName 

我必須找到CourseName中沒有學生。 也許我的大腦被炸,因爲我不知道從哪裏開始。 我需要一個左連接嗎?

+1

我投票,因爲這個問題顯示零努力縮小這個問題作爲題外話,因此我downvoting它。 –

+1

你以前的[問題](https://stackoverflow.com/questions/46595467/sql-three-tables-to-return-one-row)提到家庭作業(以及不同的dbms)。如果你不嘗試,你不會學習。 – SMor

回答

2

使用not exists運營商很可能是這樣做的最簡單的方法:

SELECT coursename 
FROM course c 
WHERE NOT EXISTS (SELECT * 
        FROM studentcourses s 
        WHERE s.courseid = c.courseid) 
1

你可以做到這一點使用LEFT JOIN - 這將返回所有課程和相應的學生。使用WHERE條款,我們只過濾該課程不要求學生:

SELECT coursename 
FROM course c 
LEFT JOIN studentcourses sc 
    ON c.courseid = sc.courseid 
WHERE sc.courseid IS NULL;