表格:
球员
player_no | transaction_id
----------------------------
1 | 11
2 | 22
3 | (null)
1 | 33
交易
id | value |
-----------------------
11 | 5
22 | 10
33 | 2
我的目标是获取所有数据,维护所有玩家,即使null在以下查询中有值:
SELECT p.player_no, COUNT(p.player_no), SUM(t.value) FROM Players p
INNER JOIN Transactions t ON p.transaction_id = t.id
GROUP BY p.player_no
然而结果省略空值,例如:
player_no | count | sum
------------------------
1 | 2 | 7
2 | 1 | 10
我想要的是提到空值:
player_no | count | sum
------------------------
1 | 2 | 7
2 | 1 | 10
3 | 0 | 0
我在这里想念什么?实际上,我为此使用 QueryDSL,但将示例转换为纯 SQL,因为它的行为方式相同。