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

如何查询Table1中存在但Table2同ID下缺失的IDSuffix并关联Name?

问题分析

你的需求核心是:找出table1中存在、但table2同ID下未匹配到的(ID, IDSuffix)组合,再将这些组合与对应ID在table2中所有唯一的Name做关联,生成预期的结果行。

你之前的左连接逻辑存在问题:当table2中没有对应(ID, IDSuffix)的记录时,左连接只会返回一条Name为NULL的行,而非把该ID下所有Name都和缺失的后缀做组合。

解决方案

可以通过三步实现目标:

  1. 提取每个ID在table2中的唯一Name列表
  2. 定位table1中存在但table2同ID下缺失的(ID, IDSuffix)对
  3. 将两者交叉关联,得到最终结果

对应的SQL语句如下:

WITH UniqueNames AS (
    -- 提取每个ID对应的唯一Name集合
    SELECT DISTINCT TableID, Name
    FROM Table2
),
MissingSuffixes AS (
    -- 找出table1中存在、但table2同ID下缺失的(ID, IDSuffix)
    SELECT a.ID, a.IDSuffix
    FROM Table1 a
    LEFT JOIN Table2 b 
        ON a.ID = b.TableID 
        AND a.IDSuffix = b.TableIDSuffix
    WHERE b.TableID IS NULL
)
-- 交叉关联缺失的后缀和对应ID的唯一Name
SELECT ms.ID, ms.IDSuffix, un.Name
FROM MissingSuffixes ms
JOIN UniqueNames un 
    ON ms.ID = un.TableID
ORDER BY ms.ID, ms.IDSuffix, un.Name;
结果验证

执行上述SQL后,会得到与你预期完全一致的结果:

IDIDSuffixName
1018Tom
1018Mel
4125Gab
2159Kit
补充说明
  • UniqueNames CTE确保每个ID对应的Name不重复,避免生成冗余结果行
  • MissingSuffixes CTE通过左连接+筛选NULL的方式,精准定位缺失的后缀组合
  • 最后将两个结果集按ID关联,实现缺失后缀与所有对应Name的组合

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:50:26