基于NUMBER和TOOL列关联TABLE_1与TABLE_2的SUM值查询求助
解决方案
核心思路
问题大概率出在直接关联未聚合的TABLE_2上:如果TABLE_2中存在同一NUMBER+TOOL组合的多条记录,直接LEFT JOIN会导致TABLE_1的记录被重复输出,或者SUM值不符合预期。正确的做法是先对TABLE_2按关联字段分组聚合,再和TABLE_1关联。
示例查询语句
SELECT t1.*, COALESCE(t2.sum_result, 0) AS sum_value -- 用COALESCE处理无匹配时的NULL,可根据需求调整 FROM TABLE_1 t1 LEFT JOIN ( -- 先对TABLE_2按NUMBER和TOOL分组计算SUM SELECT NUMBER, TOOL, SUM(target_column) AS sum_result -- 将target_column替换为TABLE_2中需要求和的字段名 FROM TABLE_2 GROUP BY NUMBER, TOOL ) t2 ON t1.NUMBER = t2.NUMBER AND t1.TOOL = t2.TOOL;
关键注意事项
- 确保TABLE_1和TABLE_2的
NUMBER、TOOL字段数据类型完全一致(比如都是INT或VARCHAR),避免因类型不匹配导致关联失败。 - 如果不需要处理无匹配时的NULL值,可去掉
COALESCE函数,直接使用t2.sum_result。
内容的提问来源于stack exchange,提问作者pinudija
相关产品推荐
相关产品推荐

