我需要从 table product 获取所有值,除了它们在其他 2 个 table products 中退出。使用 2 EXCEPTS 可以接受此查询吗?这是否应该以不同的方式进行。
CREATE table missing_values
AS
select post
from product
EXCEPT
select post
from product_table_a
EXCEPT
select post
from product_table_b
;
我需要从 table product 获取所有值,除了它们在其他 2 个 table products 中退出。使用 2 EXCEPTS 可以接受此查询吗?这是否应该以不同的方式进行。
CREATE table missing_values
AS
select post
from product
EXCEPT
select post
from product_table_a
EXCEPT
select post
from product_table_b
;
正如 MatBailie 所说,您应该尝试查询,看看是否能给您想要的结果。
但如果这不起作用,你可以用双重解决它not exists
在orp1
中均未找到此均值。p2
p3
SELECT post
FROM product p1
WHERE not exists (SELECT p2.post
FROM product_table_a p2
WHERE p1.post = p2.post)
AND not exists (SELECT p3.post
FROM product_table_b p3
WHERE p1.post = p3.post)
这也可能是一种更有效的方式
SELECT post
FROM product p1
left join product_table_a p2
on p1.post = p2.post
left join product_table_b p3
on p1.post = p3.post
WHERE p2.post is null
and p3.post is null
A
- B
-C
与A
- ( B
+ c
) 相同:
SELECT post
FROM product
EXCEPT
(
SELECT post
FROM product_table_a
UNION ALL
SELECT post
FROM product_table_b
) AS sum;