You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写SQL实现两表关联统计各状态数量获取期望查询结果

问题根因

你当前使用的是隐式内连接写法,只会返回table1中存在对应记录的状态统计结果,会丢失table2中已定义、但table1无对应数据的状态项(这类项的统计值应为0)。

修正后SQL
SELECT
  table2.StatusName AS StatusName,
  COUNT(table1.Status) AS NoOfStatus
FROM testingdb.table2
LEFT JOIN testingdb.table1
  ON table2.Status = table1.Status
GROUP BY table2.Status, table2.StatusName;
关键调整说明
  • 替换原有的逗号分隔隐式内连接为LEFT JOIN左外连接,以存储全量状态枚举的table2作为左表,保证所有状态项都会返回,不会因为table1无匹配记录被过滤
  • 分组字段改为table2的状态ID、状态名称,兼容绝大多数数据库开启ONLY_FULL_GROUP_BY模式时的语法校验要求
  • 保留COUNT(table1.Status)的统计逻辑:左连接匹配不到table1记录时,对应字段值为NULL,COUNT会自动忽略NULL值,无匹配记录的状态统计结果会正确返回0

内容的提问来源于stack exchange,提问作者cahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:03:26