我正在进行以下操作,以创建用户报告
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或什么也不显示。
我在哪里弄错了?
答案 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(*)计算每一行。