我有一張禮物桌
id | name | price
和一個禮物表來記錄所有發送的東西
id | gift | from | to
與giftingings.gift 是gift.id 的FK 以及來自和到用戶表的FK
我想計算用戶收到的每件禮物的數量,因此輸出將是這樣的
star: 5
diamond: 20
heart: 0
目前,我認為它可以處理此查詢,但如果計數為 0,則不會顯示禮物。
select gifts.id, gifts.name, count(giftings.gift) from gifts join giftings on gifts.id = giftings.gift where "to" = 5839 group by gifts.id, gifts.name
我嘗試了不同的連接,我知道我可以用子查詢來做到這一點,但我試圖在單個查詢中做到這一點,因為我知道它是可能的。
非常感謝
uj5u.com熱心網友回復:
您需要LEFT在ON子句中為用戶添加連接和條件:
SELECT g.id, g.name,
COUNT(s.gift)
FROM gifts g LEFT JOIN giftings s
ON g.id = s.gift AND s."to" = 5839
GROUP BY g.id, g.name;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/388202.html
標籤:PostgreSQL的
上一篇:與psycopg2并發更新
下一篇:使用模數時如何分組
