[英]How do combine two Queries or is it only one?
問題:
如何組合兩個查詢還是只有一個?
例子:
我的 PostgreSQL 數據庫有兩個完全相同的表。 info_table
和info_table_dump
具有完全相同的列date_at
、 name
、 color
和length
。 現在我想知道 info_table_dump 中是否有info_table_dump
中不存在的info_table
。 因此我做了這些查詢:
SELECT
date_at,name,color,length
FROM
info_table_dump
EXCEPT
SELECT
date_at,name,color,length
FROM
info_table;
結果很好。 它就像我假設的那樣工作(我創建了 2 個不匹配的條目)顯示了非重復項。 但現在我只想獲取非重復行的給定id
。 像這樣的東西...
SELECT
id
FROM
info_table_dump
WHERE
(SELECT
date_at,name,color,length
FROM
info_table_dump
EXCEPT
SELECT
date_at,name,color,length
FROM
info_table);
我也嘗試了EXISTS
的一些東西,但它不是我想要的結果。
所以我的問題如何結合查詢?
我只想要ìd
行的info_table_dump
,它們在info_table
中不存在。
那么它們不應該存在於 info_table 中嗎?
SELECT id
FROM info_table_dump d
WHERE NOT EXISTS (
SELECT 1
FROM info_table i
WHERE i.date_at IS NOT DISTINCT FROM d.date_at
AND i.name IS NOT DISTINCT FROM d.name
AND i.color IS NOT DISTINCT FROM d.color
AND i.length IS NOT DISTINCT FROM d.length
);
IS NOT DISTINCT FROM只是以防某些列可以為空。
在這里測試 db<>fiddle
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.