[SQL ] 列出沒有與其他欄位關聯的記錄

看板Database作者時間15年前 (2008/10/21 20:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
我想請問一個 SQL 該如何下, 假設我有兩個表格, 第一個表格記錄學生資料: TABLE students +-----+------+-------- | sid | name | ...... (sid 為學生 id) +-----+------+-------- | 1 | Tom | | 2 | Jack | | 3 | Mary | ...... | 4 | John | | 5 | Joe | +-----+------+-------- 第二個表格記錄學生選了什麼課: TABLE stud_courses +-----+-----+ | sid | cid | (sid 為學生 id, cid 為課程 id) +-----+-----+ | 1 | 1 | | 1 | 4 | | 2 | 4 | | 2 | 3 | | 2 | 6 | | 4 | 1 | +-----+-----+ 請問我 SQL 要怎麼下, 才能選出「所有沒有選到課的學生」? (即 id 是 3 和 5 的學生, Mary 和 Joe) 我的想法是這樣的: 我用以下查詢可以查出每個學生選的課程數量, SELECT students.sid, COUNT(stud_courses.cid) AS numCourses FROM students LEFT JOIN stud_courses ON students.sid=stud.courses.sid GROUP BY students.sid 我想說, 只要將上述查詢再加上 numCourses=0 限制條件, 就可以得到我要的答案, 即: SELECT students.sid, COUNT(stud_courses.cid) AS numCourses FROM students LEFT JOIN stud_courses ON students.sid=stud.courses.sid WHERE numCourses=0 GROUP BY students.sid 但是此查詢會造成錯誤: Unknown column 'numActors' in 'where clause' 請問問題出在哪裡, 煩請各位指教, 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.133.199 ※ 編輯: eliang 來自: 220.132.133.199 (10/21 20:49)
文章代碼(AID): #18_S-uqQ (Database)
文章代碼(AID): #18_S-uqQ (Database)