SQL计数+左联接+分组依据...缺少行

纳什爵士

尝试列出表1中的所有内容并在表2中进行记录

表一的每一行都有一个id,表2的每一行都有idontable1

select table1.*, count(table2.idintable1)as total
from   table1
       left join table2 on table1.id=table2.idintable1

 WHERE table1.deleted='0' AND table2.deleted=0
group by 
table2.idintable1

我当前的问题是未显示来自table1的行,其中table2中的记录为0

戈登·利诺夫

您想要的查询是:

select t1.*, count(t2.idintable1) as total
from table1 t1 left join
     table2 t2
     on t1.id = t1.idintable1 and t2.deleted = 0
where t1.deleted = 0 
group by t1.id;

更改如下:

  • 条件t2.deleted已移至该on子句。否则,这会将外部联接变成内部联接。
  • 条件t1.deleted仍然保留在where子句中,因为大概您确实希望将此作为过滤条件。
  • group by子句基于t1.id,因为t2.idintable1NULL在没有匹配项时出现。t1.id假设在中id是唯一的(或主键)只需使用即可table1
  • 表别名不是严格必需的,但是它们使查询更易于编写和阅读。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计数,分组依据,子查询,左联接未按预期工作

来自分类Dev

使用总和,计数,分组依据和多个左联接MySQL执行查询

来自分类Dev

SQL内部联接与分组依据

来自分类Dev

oracle sql左联接和计数,求和,分组

来自分类Dev

MySQL总和,以分组依据和联接计数

来自分类Dev

带分组的左联接的SQL Double结果

来自分类Dev

优化SQL分组依据和联接查询

来自分类Dev

优化SQL分组依据和联接查询

来自分类Dev

Oracle SQL:从表A中选择行,并回退到联接的表A和B。(联合,分组依据,...)

来自分类Dev

Symfony / Doctrine COUNT分组依据和左联接

来自分类Dev

SQL分组依据和计数

来自分类Dev

使用联接,分组依据和聚合函数的SQL选择查询

来自分类Dev

带分组依据和联接的可移植SQL

来自分类Dev

在SQL中使用分组依据时联接表

来自分类Dev

带分组依据和联接的可移植SQL

来自分类Dev

Sql表左外部联接结果分组依据

来自分类Dev

分组依据日期计数

来自分类Dev

SQL左联接错误

来自分类Dev

sql左联接返回

来自分类Dev

SQL左联接位置

来自分类Dev

sql左联接返回

来自分类Dev

SQL左联接条件

来自分类Dev

MySQL左联接和分组

来自分类Dev

左联接和表计数

来自分类Dev

Oracle SQL计数和分组依据

来自分类Dev

SQL分组依据,计数为零

来自分类Dev

基于分组依据/父行的 Oracle SQL 索引行

来自分类Dev

SQL联接-确定缺少的行

来自分类Dev

使用分组依据在SQL中按状态折叠历史行