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

如何在MySQL/SQLite中判断表A的id是否存在于表B并追加标识字段

MySQL/SQLite 实现需求的写法

要查询表A的全部记录,同时追加is_exist字段(值为1表示该记录的id存在于表B中,值为0表示不存在),可以用以下两种方式实现:

方法一:LEFT JOIN + CASE 语句(通用写法)

这种写法属于标准SQL语法,MySQL和SQLite都支持:

SELECT 
    A.*,
    CASE WHEN B.id IS NOT NULL THEN 1 ELSE 0 END AS is_exist
FROM tableA A
LEFT JOIN tableB B ON A.id = B.id;

逻辑说明:通过LEFT JOIN关联表A和表B,保留表A的所有记录;如果表B中存在匹配的id,则B.id不为空,此时is_exist设为1,否则设为0。

方法二:子查询 + 条件函数

MySQL 版本

SELECT 
    *,
    IF(EXISTS(SELECT 1 FROM tableB WHERE tableB.id = tableA.id), 1, 0) AS is_exist
FROM tableA;

SQLite 版本

SELECT 
    *,
    IIF(EXISTS(SELECT 1 FROM tableB WHERE tableB.id = tableA.id), 1, 0) AS is_exist
FROM tableA;

逻辑说明:用EXISTS子查询判断当前表A的id是否在表B中存在,MySQL用IF函数返回1或0,SQLite则用IIF函数完成相同逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:33:18