我只想连接返回0而不是删除行。目前,如果我尝试加入两个表和统计项目为每个订阅的数量,这将很好地工作:Postgres左连接正在截断行
SELECT S.id, count(I.id) FROM "Subscription" S
LEFT JOIN "Item" I on I.id = S.item_id
WHERE S.status = 1
GROUP BY S.id
回报:
id | count(I.id)
1 4
2 3
3 2
而:
SELECT S.id, count(I.id) FROM "Subscription" S
LEFT JOIN "Item" I on I.id = S.item_id
WHERE S.status = 1
AND I.status IN (1,2,3)
GROUP BY S.id
退货:
id | count(I.id)
1 3
我意识到这可能是Postgres应该如何工作的,但我曾经习惯使用MySQL。
我已经试过聚合函数产生期望的效果以及条件语句和右,完全和外部联接,但似乎无法得到它的工作就是我想要的。
如果我想返回状态为1的所有用户,但如果他们没有状态为1,2或3的项目时显示0项,该怎么办?
从this documentation它似乎像使用的代码应该工作。
期望的结果是:
id | count(I.id)
1 3
2 0
3 0
请尝试更好地解释你想要的预期结果 – carexcer