Postgresql
使用 LEFT 表中的所有記錄創建結果集,並從 RIGHT 表中僅帶來左側已不存在的記錄
我在想辦法讓這個 JOIN 工作時遇到了一些麻煩。
Postgres 11.5
我有兩張桌子:
表 1:
customer_id
日期
(其他各種欄位)
表2:
customer_id
日期
(其他各種欄位)
這些表不一樣,但 customer_id 和日期的格式相同,因此可以加入。
我正在嘗試創建一個結果集,其中包含兩個組合在一起的表(所有列),但應用了以下邏輯:
表 1 中的所有數據
僅表 2 中不存在於表 1 中的記錄
在 customer_id 和 date 上加入
我的最終目標是嘗試使用此結果集創建堆積面積圖,但在某些情況下,客戶可能同時出現在表 1 和表 2 中,因此對於某一天,如果存在這樣的人,我不想重複計算那個人。
感謝幫助!
假設所有列都兼容:
SELECT * from table1 UNION ALL SELECT table2.* from table2 left join table1 using (customer_id, date) where table1.customer_id is null
如果不是所有列都兼容,您將不得不對選擇列表進行一些繁瑣的操作,而不是使用
*
.