uno*_*ary 6 sql postgresql left-join
我有2张桌子:
T1 (id, flag1)
T2 (id, amount, date, flag2, t1_id);
Run Code Online (Sandbox Code Playgroud)
我有以下查询:
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
Run Code Online (Sandbox Code Playgroud)
问题是我想在结果中有一行,例如:id = 123, spent_amount = 0如果我有一个入口T1,但它没有连接的行T2.
Gia*_*los 12
在你的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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1428 次 |
| 最近记录: |