这种类型的用户有一个帖子表:
post_id: 1, 2, 3, 4, 5
user_id: 1, 1, 2, 1, 3
status: 0, 0, 1, 2, 1
任务:显示每个用户的帖子总数和通过审核(状态为 1 或 2)的帖子数。
我正在编写这种类型的查询:
select user_id, count(post_id) as 'all_posts', (select count(post_id)
from post where status in (1,2)) as 'approved'
from post
group by user_id
但是(突然),所有帖子的计数都通过了规则,子查询生成一个数字并将其复制到所有用户。那些。我明白这是应该的,但我不明白如何让子查询每次都成为自己的行。
mySql 允许您对布尔值求和,自动将 false 转换为 0,将 true 转换为 1。因此,在这种情况下,您根本不需要子查询