mysql - JOIN 显示行,即使它为空

标签 mysql sql join

这是我的代码:

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/

相关文章:

php - 我想从 mysql 数据库检索图像,但它显示字符而不是图像

php - DATE 数据类型的 Mysql PDO 准备语句问题

sql - 为客户生成 SQL 升级脚本

mysql - 在不同条件下选择两次字段

sql - 查询中的多个连接 - 可以替换以获得性能吗?

mysql - 如何将 JSON Blob 转换为列和值

php - 如何从浏览器游戏设计数据库访问

php - 无法连接到 MySql 服务器(错误)

mysql - 连接两个表而不丢失相关值

mysql - 选择列和匹配行