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

SQL LEFT JOIN查询未返回预期结果 预算列值错位问题排查

SQL关联查询结果异常问题

涉及表结构

现有两张业务数据表结构及测试数据如下:

CATEGORIES表:
id | name          | category_group  | cate_type_id
1  | Entertainment | Entertainment   | 1
2  | Electricity   | Utilities       | 8
3  | Water         | Utilities       | 8
4  | Rent          | Living Exp      | 6
5  | credit card   | Finance         | 5

BUDGET-ITEMS表:
id | budget_id | cat_id | category_group| budget_yr | budget_01 | budget_02 | ... | budget_12
1  | 1         | 1      | Entertainment | 2022      | 500       |           |
2  | 1         | 2      | Utilities     | 2022      | 1500      |           |
3  | 1         | 3      | Utilities     | 2022      |           |  250      |

使用的查询语句

需求为查询CATEGORIES表所有符合条件的条目,关联匹配对应的预算项数据,编写的SQL如下:

SELECT c.id as base_id,c.name,c.category_type_id, c.category_group as base_group, b.* 
FROM category c 
LEFT JOIN budget_items b ON c.id = b.category_id 
WHERE c.category_type_id NOT IN (5) 
ORDER BY c.category_type_id, c.category_group ASC

预期与实际结果对比

  • 预期输出:所有分类(排除信用卡分类)正确关联对应月份的预算值,电费1月预算1500、水费2月预算250,无预算的房租分类返回空预算值
id | budget_id | cat_id | catgroup      | budget_yr | budget_01 | budget_02 | ... | budget_12
1  | 1         | 1      | Entertainment | 2022      | 500       |           |
2  | 1         | 2      | Utilities     | 2022      | 1500      |           |
3  | 1         | 3      | Utilities     | 2022      |           |  250      |
4  | 1         | 4      | Living Exp    | 2022      |           |           |
  • 实际输出:左表分类数据返回正确,但预算值列匹配错位,电费的1500出现在2月预算列,水费无对应预算值
id | budget_id | cat_id | catgroup      | budget_yr | budget_01 | budget_02 | ... | budget_12
1  | 1         | 1      | Entertainment | 2022      | 500       |           |
2  | 1         | 2      | Utilities     | 2022      |           |  1500     |
3  | 1         | 3      | Utilities     | 2022      |           |           |
4  | 1         | 4      | Living Exp    | 2022      |           |           |

补充说明:为节省篇幅截断了返回结果中base_前缀的分类相关列,核心异常为预算值与月份列的对应关系错误。

最终排查结论

经最终定位,所编写的JOIN查询语句逻辑无问题、运行正常,异常结果由底层存储的源数据本身错误导致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:09:14