mysql查询提供数据但跳过空值

标签 mysql

我有以下查询,它给出了结果但不是预期的结果

select g.id
     , g.name
     , COUNT(p1.id) as total 
  from ft_smsender_groups as g
     , ft_smsender_persons as p1
     ,ft_smsender_persons2groups as p2 
 where g.id = p2.group_id 
   and p1.id = p2.person_id 
 group 
    by id
     , name

这给了我与每个人相关联的群体的值(value),

但它会跳过那些没有任何人关联的组,

我需要修改此查询以提供所有组名,因此我没有分配任何人,它应该将 total 列值指定为 0

最佳答案

这样试试

select g.id,g.name, count(p2.id) as total from ft_smsender_
groups as g left join (select p1.id,p2.group_id 
from ft_smsender_persons2groups as p2  inner join ft_smsender_persons 
as p1 on p1.id = p2.person_id ) as p2 on g.id = p2.group_id group by id,name

关于mysql查询提供数据但跳过空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31758404/

相关文章:

MySQL:查找日期范围冲突的行

PHP提交问题

MySQL查询从三个表中获取总计

mysql - 如何为以下内容创建 mysql 查询?

php - XAMPP(Windows)自动备份MySQL数据库

java - mysql如何建立两个表之间的关系

mysql - 如果 dbname 不存在,则创建数据库,1 行受影响

mysql - 在两个 sql 字段中测试等效性的最佳方法

MYSQL 选择包含另一个查询中所有内容的元素

c# - 在父表中插入值时自动在子表中生成id