我正在执行以下操作,创建用户报告
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
这应该给出一个包含用户名、全名、权限 (1/0) 和条目总数的表格。
遗憾的是,查询仅列出用户,这在表 products
中创建了 1 个或多个条目。但我想要所有用户,如果他们没有在products
中进行任何输入它应该显示 0 或什么也不显示。
我哪里搞错了?
最佳答案
使用 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(*) 则计算每一行。
关于MySQL 连接,即使为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25092906/