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

SQL嵌套JOIN查询对比两周Member_Impact变化返回结果过多求助

问题根因

你的查询返回结果远超预期的核心问题是INNER JOIN的关联条件缺少了Issue_Id相等的判断,仅保留了Member_Impact不等的规则,这会导致两个子查询的结果集生成笛卡尔积:只要属于不同周的任意两条记录Member_Impact不一致就会匹配成功,而不是你预期的「仅对比同一个Issue_Id的两周数据」。
另外子查询内部的ORDER BY没有实际作用,还会额外浪费计算性能,可以直接删除。

修正后代码

SELECT 
    currentweek.issue_id,
    Priorweek.Member_Impact AS prior_week_impact,
    Currentweek.Member_Impact AS current_week_impact
FROM 
(
    SELECT 
        Rmd.Issue_Id,
        Current.As_Of_Date,
        Current.Member_Impact
    FROM Lod.Ism_Issue_Summary_Hist_Wky Current
    INNER JOIN Lod.Rmd_Iss_Remed_Summary Rmd ON Current.Issue_Id = Rmd.Issue_Id
    WHERE As_Of_Date = '2021-08-08'
) AS Priorweek 
INNER JOIN
(
    SELECT 
        Rmd.Issue_Id,
        Current.As_Of_Date,
        Current.Member_Impact
    FROM Lod.Ism_Issue_Summary_Hist_Wky Current
    INNER JOIN Lod.Rmd_Iss_Remed_Summary Rmd ON Current.Issue_Id = Rmd.Issue_Id
    WHERE As_Of_Date = '2021-08-15'
) AS Currentweek 
-- 先关联同一Issue_Id的两周数据,再筛选值发生变化的记录
ON Priorweek.Issue_Id = Currentweek.Issue_Id 
AND Priorweek.Member_Impact <> Currentweek.Member_Impact;

如果需要覆盖「某一周存在、另一周不存在该Issue_Id」的场景,可以将INNER JOIN替换为FULL OUTER JOIN,同时添加空值判断逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:33:03