MySQL : Get status (pending and approved) count for each user

标签 mysql

我正在做一个项目,但我被困在一个点上。问题是我有以下两个表,usersuser_mistakes :

<强> users :

<表类=“s-表”> <标题> id 姓名 <正文> 1 ABC 2 XYZ 3 JKL

<强> user_mistakes :

<表类=“s-表”> <标题> id user_id 错误 状态 <正文> 1 1 Lorem ipsum 1 2 1 Lorem ipsum 1 3 2 Lorem ipsum 0 4 2 Lorem ipsum 1

如果user_mistakes.status = 0 = 待处理

如果user_mistakes.status = 1 =批准

根据上述usersuser_mistakes表数据,我想要每个用户的待处理和已批准状态计数,如下所示:

<表类=“s-表”> <标题> user_id 姓名 pending_mistakes approved_mistakes <正文> 1 ABC 0 2 2 XYZ 1 1 3 JKL 0 0

有什么方法可以通过单个查询实现此目的吗?

最佳答案

您可以尝试使用以下代码:

SELECT
    users.id,users.name,
    SUM(IF(mistakes.status=1, 1, 0)) AS approved_mistakes,
    SUM(IF(mistakes.status=0, 1, 0)) AS pending_mistakes
FROM users
LEFT JOIN mistakes ON mistakes.user_id = users.id
GROUP BY mistakes.user_id

如果您遇到任何问题,请告诉我

关于MySQL : Get status (pending and approved) count for each user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51220224/

相关文章:

MySQL 查询返回错误的 COUNT 值

MySQL用户拥有数据库的完全权限

php - 在类(class)的开始和结束日期之间返回休息时间

mysql - 使用 PDO 驱动程序(MySQL + PHP)检测错误/无效/非法查询

php - 使用php从mysql数据库中获取Json

php - 比较单独表中的 2 列移动和仅移动非重复项

mysql - 如何从 firebird 数据库服务器获取 mysql 数据库服务器中的表、 View 等

mysql - MySQL 中的 FULL JOIN 连接 6 个表

php - 通过 mysql 进行 JSON Android 登录验证

mysql - 如何使 TOAD for MySql 将空字符串视为 null