mel*_*dob 1 sql postgresql null join left-join
我在 postgresql 中加入了一个表和多个子查询。
在第一个连接中,我将一个包含玩家 ID 和名称列表的表连接到一个子查询,以选择他们关联的胜利。然而,一些球员还没有取得胜利。
下面是查询和输出:
select players.player_id, players.name, b.wins
from players
left join
(select winner, count(winner) as wins from outcomes group by winner) b
on players.player_id = b.winner;
player_id | name | wins
-----------+-------------------+------
500 | person 1 | 3
501 | person 2 |
502 | person 3 | 1
Run Code Online (Sandbox Code Playgroud)
我想知道如果该列中的值出现为空,我如何自动让这个查询默认为 wins 为 0。我希望上表如下所示:
player_id | name | wins
-----------+-------------------+------
500 | person 1 | 3
501 | person 2 | 0
502 | person 3 | 1
Run Code Online (Sandbox Code Playgroud)
你使用coalesce():
select p.player_id, p.name, coalesce(w.wins , 0) as wins
from players p left join
(select winner, count(winner) as wins
from outcomes
group by winner
) w
on p.player_id = w.winner;
Run Code Online (Sandbox Code Playgroud)
这是 ANSI 标准 SQL,适用于大多数数据库,包括 MySQL 和 Postgres。
| 归档时间: |
|
| 查看次数: |
4352 次 |
| 最近记录: |