[SQL ] MySQL 如何做差集 (MINUS)?

看板Database作者時間15年前 (2008/11/07 00:18), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串1/3 (看更多)
我想做下面事情: SELECT id FROM a WHERE condition_1 MINUS SELECT id FROM b WHERE condition_2 (假設兩次 SELECT 的結果各自都不重複) 也就是第一個 SELECT 的結果, 減去第二個 SELECT 的結果, 但是 MySQL 不支援 MINUS 運算子, 我試著在網路上找答案, 但只找到沒有 WHERE 的解法, 如: SELECT id FROM a MINUS SELECT id FROM b 可改寫成: SELECT a.id FROM a LEFT JOIN b ON a.id=b.id WHERE b.id IS NULL 我嘗試把原先的條件式加上去: SELECT a.id FROM a LEFT JOIN b ON a.id=b.id WHERE condition_1 AND condition_2 AND b.id IS NULL 結果是錯的, 想請問如果兩個 SELECT 後面都有 WHERE 子句, 應該如何改寫呢? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.133.199

11/07 09:18, , 1F
看起來很合理 = =a..原本的條件長怎樣?
11/07 09:18, 1F

11/07 09:23, , 2F
唔…把 AND condition_2放到 left join後面應該就對了?
11/07 09:23, 2F
文章代碼(AID): #194nZagh (Database)
文章代碼(AID): #194nZagh (Database)