我正在努力
select count(*)
from groups
left join members on groups.id=members.group_id
group by groups.id
having count(members.id)=1
但它只给了我一堆 1。如何获取行数?
最佳答案
只需将查询嵌入为子查询即可计算查询结果。
顺便说一句,内部联接比外部联接更适合您的查询。事实上,只有在 Members 表中存在无效的 group_id 值时才需要联接。
使用内连接:
select count(*)
from
(
select groups.id
from groups
inner join members on groups.id=members.group_id
group by groups.id
having count(members.id)=1
) as sub
没有加入(假设没有孤儿):
select count(*)
from
(
select group_id
from members
group_id
having count(*) = 1
) as sub
关于mysql - 如何获取只有 1 名成员的群组数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5652716/