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

SQL如何排除表中id存在于另一张表id列的对应行

SQL查询实现方案

以下三种写法都可以实现需求,无需提前手动整理要排除的ID值:

  • 方法1:NOT IN 子查询
    写法最直观,直接取Second_table的id集合作为排除范围:
SELECT id, occupation
FROM First_table
WHERE id NOT IN (SELECT id FROM Second_table);

注意:如果Second_table的id列存在NULL值,该写法会返回空结果,存在NULL场景建议使用下面两种方案

  • 方法2:左连接 + 空值判断
    通过左连接关联两张表后,筛选关联不到Second_table记录的行:
SELECT f.id, f.occupation
FROM First_table f
LEFT JOIN Second_table s ON f.id = s.id
WHERE s.id IS NULL;

该写法兼容性极强,所有主流SQL数据库都支持。

  • 方法3:NOT EXISTS 子查询
    通过存在性判断筛选,多数数据库中该写法的执行性能优于NOT IN:
SELECT id, occupation
FROM First_table f
WHERE NOT EXISTS (
    SELECT 1 FROM Second_table s 
    WHERE s.id = f.id
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:24:04