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

如何用SQL结合LEFT JOIN查询Table A中不在Table B的Sandi和Susi?

用INSERT + LEFT JOIN找出Table A独有的记录

首先,咱们得明确核心逻辑:要找出Table A里有但Table B里没有的记录,LEFT JOIN是最合适的工具——它会保留左表(Table A)的所有行,右表(Table B)里找不到匹配的行,对应的字段就会是NULL。再结合INSERT的话,我们可以把这些差异记录先插入到一个临时表或者结果表,之后就能轻松查询显示了。

假设两个表用来匹配的名字字段都是name(如果你的实际字段名不一样,直接替换即可),具体步骤如下:

1. 创建结果存储表(可选,但符合题目结合INSERT的要求)

如果需要把结果持久化存储,先建一个简单的表来存差异记录:

CREATE TABLE IF NOT EXISTS Table_A_Exclusive (
    name VARCHAR(50)
);

2. 用INSERT + LEFT JOIN插入差异记录

通过INSERT...SELECT语法,把LEFT JOIN筛选出的差异结果插入到刚才创建的表中:

INSERT INTO Table_A_Exclusive (name)
SELECT A.name
FROM Table_A A
LEFT JOIN Table_B B ON A.name = B.name
WHERE B.name IS NULL;

3. 查询并显示结果

现在直接查询结果表就能看到Sandi和Susi了:

SELECT * FROM Table_A_Exclusive;

直接查询(无需插入的简化版)

如果只是想直接输出结果,不需要持久化,也可以跳过插入步骤,直接执行这个LEFT JOIN查询:

SELECT A.name
FROM Table_A A
LEFT JOIN Table_B B ON A.name = B.name
WHERE B.name IS NULL;

逻辑说明

  • LEFT JOIN Table_B B ON A.name = B.name:将Table A的每一行与Table B中名字匹配的行关联,保留Table A的所有记录
  • WHERE B.name IS NULL:筛选出Table B中没有匹配项的Table A记录——也就是咱们要找的Sandi和Susi

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:02:47