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

如何编写SQL查询获取Table1中不存在于Table2的全字段匹配行

实现Table1差集查询的SQL方案

现有数据表

Table1

MarketIDEmployee ID
101501
102502
103503
104504
105505

Table2

MarketIDEmployee ID
101501
102502
103504
106505
107507

预期输出结果

MarketIDEmployee ID
103503
104504
105505

可用查询语句

方案1:NOT EXISTS实现(全数据库兼容)

SELECT t1.MarketID, t1.`Employee ID`
FROM Table1 t1
WHERE NOT EXISTS (
    SELECT 1 
    FROM Table2 t2 
    WHERE t2.MarketID = t1.MarketID 
      AND t2.`Employee ID` = t1.`Employee ID`
);

方案2:左连接实现(全数据库兼容)

SELECT t1.MarketID, t1.`Employee ID`
FROM Table1 t1
LEFT JOIN Table2 t2 
  ON t1.MarketID = t2.MarketID 
  AND t1.`Employee ID` = t2.`Employee ID`
WHERE t2.MarketID IS NULL;

方案3:EXCEPT实现(支持PostgreSQL、SQL Server等数据库)

SELECT MarketID, `Employee ID` FROM Table1
EXCEPT
SELECT MarketID, `Employee ID` FROM Table2;

注意:字段名Employee ID包含空格,不同数据库的包裹符略有区别,MySQL用反引号、PostgreSQL/SQL Server可用双引号、SQL Server也可用方括号,可根据实际使用的数据库调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 02:54:01