mysql - 如何获取只有 1 名成员的群组数量?

标签 mysql

我正在努力

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/

相关文章:

mysql - 创建分区时显示错误

php - 注册表 php mysql html

MySQL将一个字段统计成两个不同的统计结果

mysql - 在SmartFoxServer中配置MySQL服务器连接

MySQL搜索包含或不包含撇号的关键字

java - 更新数据库列后检索它的值

PHP pdo : update + insert and then select returns null

mysql - tinymce 如何在 MySQL 中存储希腊文本?

mysql - "Overwrite"/替换表MYSQL中的空/错误条目

php - 无论单词的顺序如何,如何匹配 mySQL 结果中的单词?