【问题标题】:COUNT for NULL or 0 group using a join使用连接的 NULL 或 0 组的 COUNT
【发布时间】:2020-01-20 12:27:48
【问题描述】:

我正在尝试确定没有条目的分组列的计数,我几乎得到了我需要的结果,除非 COUNT 为 0 或 NULL。我正在使用的查询如下。

SELECT count(t2.users) as user_count, t3.user_group
FROM db.table1 t1
inner join db.table2 t2 ON t1.id = t2.id
inner join db.table3 t3 on t1.id2 = t3.id
group by t3.user_group
order by t3.user_group;

结果 [https://i.stack.imgur.com/0NkMb.png][1]

想看到的结果 [https://i.stack.imgur.com/22Apt.png][2]

【问题讨论】:

  • 总是最好复制/粘贴结果,因为它有助于保持问题的完整性,当图像被删除并且问题仍然存在时可能会被破坏
  • 显示表格结构。特别是关于查询中使用的字段的信息是否是唯一的。
  • use text, not images/links, for text--including tables & ERDs。转述或引用其他文本。只提供您需要的东西并将其与您的问题联系起来。仅将图像用于无法表达为文本或增强文本的内容。无法搜索或剪切和粘贴图像。在图片中包含图例/键和说明。
  • 当这很清楚时,它将是一个常见问题解答。在考虑发布之前,请始终在谷歌上搜索任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有或没有您的特定字符串/名称和站点:stackoverflow.com 和标签,并阅读许多答案。如果您发布问题,请使用一个短语作为标题。请参阅How to Ask 和投票箭头鼠标悬停文本。

标签: mysql join count


【解决方案1】:

table3 开始连接并使用left 连接而不是inner(至少对于table1table2 之间的连接):

SELECT count(t2.users) as user_count, t3.user_group
FROM db.table3 t3
left join db.table1 t1 on t1.id2 = t3.id
left join db.table2 t2 ON t1.id = t2.id
group by t3.user_group
order by t3.user_group;

【讨论】:

  • desure结果显示至少有一张表有重复。如果 2 或 3 个表中有重复,结果将是错误的。
  • 这是 OP 将在结果中看到的内容。这段代码解决了问题中表达的问题:我几乎得到了我需要的结果,除非 COUNT 为 0 或 NULL 通过左连接。如果之后计数器没有返回正确的结果,则应修改代码。
【解决方案2】:

尝试使用左连接而不是使用内连接。通常内连接只返回右表和左表中可用的值。意味着如果某些记录可用是左表并且右表中没有可用的相关信息,则您的选择查询返回空记录集。请求的所有行。

所以将您的查询更改为

      SELECT count(t2.users) as user_count, t3.user_group FROM db.table3 t3
              left join db.table1 t1 on t1.id2 = t3.id
              left join db.table2 t2 ON t1.id = t2.id
              group by t3.user_group
              order by t3.user_group;

【讨论】:

  • If You use Left Join Either Left table or right Table having a value means select Query Returns Some Value as your Required Format.。这是错误的,左连接包括左表中的所有行,右表列为空,以防连接条件与右表中的任何行都不匹配。
  • 兄弟。抱歉,我也在尝试传达这些信息。谢谢兄弟@Mohd Waseem
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-22
  • 2018-12-09
  • 2021-10-24
相关资源
最近更新 更多