MySQL 连接,即使为 0

标签 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

这应该给出一个包含用户名、全名、权限 (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/

相关文章:

mysql - 如何对团体的多个成员进行建模?

php - 解决 SQL 查询结果中的歧义

MySQL 循环与 LOAD DATA LOCAL INFILE 一起使用

mysql - 在 MySQL 转储文件中重命名 MySQL 引擎

mysql - 如何在 MySQL 中引用字符串?

mysql - 你能在 MySQL 上练习 MSSQL 查询吗?

mysql:截断一个字段并聚合另一个表中的数据

android - 如何在sqlite中编写以下Select

mysql - 如何选择选定日期的查询[2010-11-04]以使用mysql显示日期

sql - 使用触发器的 PostgreSQL 审计历史