作者eliang ()
看板Database
標題[SQL ] MySQL 如何做差集 (MINUS)?
時間Fri Nov 7 00:18:43 2008
我想做下面事情:
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
推 grence:看起來很合理 = =a..原本的條件長怎樣? 11/07 09:18
推 grence:唔…把 AND condition_2放到 left join後面應該就對了? 11/07 09:23