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

如何查询表A所有记录,并将表B匹配项以布尔值显示在approved字段

解决表A全量记录匹配表B ID的SQL问题

你原来的SQL用逗号直接关联两个表,会生成笛卡尔积——表A的每一行都和表B的每一行配对,所以结果行数是5×3=15行,完全不符合需求。

要实现「返回表A全部记录,标记出在表B中存在的ID」,核心是用左连接(LEFT JOIN),它会保留左表(表A)的所有记录,仅匹配右表(表B)中符合条件的行,不匹配的部分右表字段会显示NULL。

正确SQL语句(适用于Access等支持IIf的数据库)

SELECT 
    [Source A].ID,
    IIf([Source B].ID IS NOT NULL, TRUE, NULL) AS MATCH
FROM [Source A]
LEFT JOIN [Source B] ON [Source A].ID = [Source B].ID;

另一种直观写法(用EXISTS子查询)

如果不想用连接,也可以直接用EXISTS判断当前ID是否在表B中存在:

SELECT 
    ID,
    IIf(EXISTS(SELECT 1 FROM [Source B] WHERE [Source B].ID = [Source A].ID), TRUE, NULL) AS MATCH
FROM [Source A];

执行结果

上述两个语句都会返回你期望的结果:

IDMATCH
2TRUE
4
6TRUE
8TRUE
10

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:31:02