这是我的代码:
SELECT *, cr.club_winner AS 'club_winner', COUNT(club_winner) AS 'count_cw'
FROM clubs c
JOIN club_results cr
WHERE c.club_id = cr.club_winner AND c.club_group = '1'
GROUP BY cr.club_winner
ORDER BY count_cw DESC, club_name
我在一个表中包含俱乐部名称行,在第二个表中包含club_winner id。在表格中,我想显示实时排名,如果俱乐部从未获胜,则显示“0”。不知道该怎么办。
现在它只显示至少一次获胜的俱乐部。
我尝试添加“case”,但 id 不起作用
最佳答案
从LEFT JOIN
开始。我认为你想要的查询是这样的:
SELECT c.*, COUNT(cr.club_winner) AS count_wins
FROM clubs c LEFT JOIN
club_results cr
ON c.club_id = cr.club_winner
WHERE c.club_group = '1'
GROUP BY c.club_id
ORDER BY count_cw DESC, club_name;
关于mysql - JOIN 显示行,即使它为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44047594/