mysql - 将 RIGHT JOIN 与 COUNT 相结合

标签 mysql join

我正在尝试获取每个用户在 changes_cc 表中的条目数列表。并非所有用户都在其中进行了输入,但是由于某种原因,它为具有 0 个条目的每个用户返回“1”。我假设这是因为它正在计算 JOINed 表中的条目。我怎样才能让它变成“0”呢?

SELECT COUNT(*) as num, users.id, realname, username
            FROM changes_cc
            RIGHT JOIN users
                ON changes_cc.user_id = users.id
            GROUP BY users.id

最佳答案

我认为这应该可行——计算 changes_cc 表中的特定字段与计算 *:

SELECT u.id, realname, username, COUNT(c.id) as num
FROM users u 
    LEFT JOIN changes_cc c 
        ON u.user_id = c.id
GROUP BY u.id

我更喜欢阅读 LEFT JOIN 而不是 RIGHT JOIN,但它们都是 OUTER JOIN 并且工作方式相同。

关于mysql - 将 RIGHT JOIN 与 COUNT 相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15561811/

相关文章:

mysql - 如何使用mysql工作台查找一周内两个日期中较大的日期

mysql - 库存系统/任务系统的正确计数

mysql - 查找MySql服务器实例的windows服务名

php - 从查询中按值查找特定字段

sql - 如何使用 JOIN 而不是 IN 选择一个人所属的所有组的名称?

php - MYSQL:计算另一个表中与第一个表中的行相对应的行数

Mysql:一个表的一个字段和另一个表的两个字段之间的多重关系

mysql - 获取最后插入行的唯一 ID

mysql - 优化sql查询

mysql - 加入不应该返回零元素的地方