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

如何获取某表中不存在于其他多表的唯一值

获取Table1中不在Table2、Table3的唯一值列表

我来帮你解决这个问题,这里有两种常用的SQL写法可以实现你的需求,并且都能匹配你给出的测试数据结果:

方法一:使用NOT IN子查询

这种写法逻辑直观,适合简单的排除场景:

SELECT DISTINCT t1.Value
FROM Table1 t1
WHERE t1.Value NOT IN (SELECT Value FROM Table2)
  AND t1.Value NOT IN (SELECT Value FROM Table3);
  • DISTINCT:确保只返回Table1中Value列的唯一值
  • NOT IN:分别排除掉Table2和Table3中已存在的Value值

方法二:使用LEFT JOIN + IS NULL

如果你的Value列可能存在NULL值,这种方法会更稳妥(因为NOT IN在遇到NULL时可能返回意外结果):

SELECT DISTINCT t1.Value
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.Value = t2.Value
LEFT JOIN Table3 t3 ON t1.Value = t3.Value
WHERE t2.Value IS NULL
  AND t3.Value IS NULL;
  • LEFT JOIN:保留Table1的所有记录,同时关联Table2和Table3的匹配记录
  • WHERE t2.Value IS NULL AND t3.Value IS NULL:筛选出在Table2和Table3中都没有匹配到的记录
  • DISTINCT:同样用于去重,确保结果是唯一值列表

验证结果

根据你提供的测试数据:

  • Table1的Value:A、B、C、D
  • Table2的Value:A、C、D、G
  • Table3的Value:A、D、E、F

两种方法都会返回唯一结果:B,完全符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:03:41