我有这个查询,其中运算符的两个操作数MINUS
被计算了两次。如何重写查询以便它们只创建一次?
(目的是检查两组是否相等)
SELECT DISTINCT t1.id
FROM t1
WHERE NOT EXISTS (SELECT t2.did FROM t1 AS t2
WHERE t2.id = t1.id
MINUS
SELECT t3.did FROM t3
WHERE t3.price > 500000)
AND NOT EXISTS (SELECT t3.did FROM t3
WHERE t3.price > 500000
MINUS
SELECT t2.did FROM t1 AS t2
WHERE t2.id = t1.id);
为了澄清事情,以下两个 [子] 查询在查询中重复了两次:
SELECT t2.did FROM t1 AS t2
WHERE t2.id = t1.id
和
SELECT t3.did FROM t3
WHERE t3.price > 500000