MySQL加入,即使是0

时间:2014-08-02 07:49:01

标签: mysql sql

我正在进行以下操作,以创建用户报告

SELECT b.username, b.name, b.permissiontoedit, a.total, a.user
FROM (SELECT user, Count( * ) AS total
FROM products
GROUP BY user)a
JOIN user b ON a.user = b.username

这应该给出一个包含用户名,全名,permision(1/0)和条目总数的表。

可悲的是,查询只列出了用户,这些用户在表products中创建了更多1个或更多条目。但我想要所有用户,如果没有在products中创建任何条目,它应该显示0或什么也不显示。

我在哪里弄错了?

1 个答案:

答案 0 :(得分:1)

使用LEFT JOIN可以获得结果:

SELECT 
    u.username, u.name, u.permissiontoedit, COUNT(p.user) as total
FROM
    user u
LEFT JOIN
    products p
ON
    u.username = p.user

注意:COUNT(表达式)只计算NOT NULL行,而COUNT(*)计算每一行。