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

如何保留Table1全量数据并标记与Table2的重复项

问题描述

现有两张表:

Table 1

idtype
x1p1
x2p1
x3g1

Table 2

idtype
x1p1
x2p1

需要执行SELECT查询,保留Table1的所有数据,同时新增一个duplicate列:若Table1中的数据在Table2中存在,标记为1;否则标记为0,预期结果如下:

预期结果

idtypeduplicate
x1p11
x2p11
x3g10

解决方案

方法一:LEFT JOIN + CASE 语句

通过左连接Table2,根据连接结果是否为空判断是否重复:

SELECT 
    t1.id,
    t1.type,
    CASE 
        WHEN t2.id IS NOT NULL THEN 1 
        ELSE 0 
    END AS duplicate
FROM Table1 t1
LEFT JOIN Table2 t2 
    ON t1.id = t2.id AND t1.type = t2.type;

方法二:EXISTS 子查询

用EXISTS子查询直接判断当前行是否在Table2中存在,大数据量下性能更优:

SELECT 
    id,
    type,
    CASE 
        WHEN EXISTS (
            SELECT 1 
            FROM Table2 t2 
            WHERE t2.id = t1.id AND t2.type = t1.type
        ) THEN 1 
        ELSE 0 
    END AS duplicate
FROM Table1 t1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:45:51