作者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
1F:推 grence:看起来很合理 = =a..原本的条件长怎样? 11/07 09:18
2F:推 grence:唔…把 AND condition_2放到 left join後面应该就对了? 11/07 09:23