簡體   English   中英

PostgreSQL LEFT JOIN無法正常工作

[英]PostgreSQL LEFT JOIN not working properly

我有2張桌子:

T1 (id, flag1)
T2 (id, amount, date, flag2, t1_id);

我有以下查詢:

SELECT T1.id, ROUND(COALESCE(SUM(T2.amount), 0), 2) AS spent_amount
FROM T1
LEFT JOIN T2 ON T2.t1_id = T1.id
WHERE T2.date <= '2014-01-01' AND T2.flag2 = 't' AND T1.flag1 = 't'
GROUP BY T1.id

問題是我想在結果中有一行,例如: id = 123, spent_amount = 0 ,如果我在T1有一個入口,但它在T2沒有連接的行。

在你的T2上有一個WHERE子句它將過濾掉所有NULLS:

SELECT T1.id, ROUND(COALESCE(SUM(T2.amount), 0), 2) AS spent_amount 
FROM T1 
LEFT JOIN T2 
    ON T2.t1_id = T1.id 
    AND T2.date <= '2014-01-01' 
    AND T2.flag2 = 't' 
WHERE T1.flag1 = 't'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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