sql查询:
select
u.username,
@total_subscribers:=(
select count(s.id)
from subscribers as s
where s.suid = u.uid
) as total_subscribers
from users as u
where @total_subscribers > 0
如果我删除 where @total_subscribers > 0
查询将显示所有用户及其订阅者总数
但我只想显示那些至少拥有 1 个订阅者的用户...在添加 where 子句并使用定义的变量后,我得到一个空结果集。
最佳答案
您可以使用group by
和having
来做到这一点:
select
u.username,
count(s.id) as total_subscribers
from users as u
inner join subscribers as s on s.suid = u.uid
group by u.id
having count(s.id) > 0
关于mysql 在 where 子句中使用用户定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10934939/