簡體   English   中英

如何組合兩個查詢還是只有一個?

[英]How do combine two Queries or is it only one?

問題:

如何組合兩個查詢還是只有一個?

例子:

我的 PostgreSQL 數據庫有兩個完全相同的表。 info_tableinfo_table_dump具有完全相同的列date_atnamecolorlength 現在我想知道 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM