[SQL ] MySQL 如何做差集 (MINUS)?
我想做下面事情:
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
11/07 09:18, 1F
推
11/07 09:23, , 2F
11/07 09:23, 2F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 3 篇):