SQLite:如何从左连接返回零数?

时间:2016-11-10 20:24:24

标签: sql sqlite count left-join

我有两个表:玩家(id,名称)和目标(id,player_id)。我想返回所有玩家的列表以及他们与之关联的目标数量,即使他们没有与之相关的目标。我试过了:

SELECT player.name AS player_name, 
       COUNT(goal.id) AS goals 
  FROM player 
       LEFT JOIN goal 
       ON player.id = goal.player_id
 GROUP BY player 
 ORDER BY goals DESC;

但问题在于它只返回一个没有进球的球员,我无法弄清楚原因。我知道它与GROUP BY子句有关。肯定有很多球员没有进球。

2 个答案:

答案 0 :(得分:3)

您按整个表进行分组,而不是播放器表中唯一的单个字段(例如player.name)。

答案 1 :(得分:3)

您需要按player.name分组。我很惊讶你没有收到player不是定义列的错误。