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

DB2中查询TABLE_A中FIELD_1、FIELD_2组合匹配TABLE_B的SQL写法

DB2 适用SQL解决方案

以下三种写法均可以实现需求,可根据实际业务场景选择:

方法1:多列IN查询(写法最简单,适合小数据量场景)

DB2原生支持多列匹配的IN语法,写法最直观:

SELECT * 
FROM TABLE_A
WHERE (FIELD_1, FIELD_2) IN (
    SELECT FIELD_1, FIELD_2
    FROM TABLE_B
);

方法2:EXISTS关联查询(性能最优,推荐大数据量场景使用)

EXISTS为半连接逻辑,只要匹配到符合条件的记录就会停止扫描,避免全表遍历,性能远优于IN写法,数据量大时优先使用:

SELECT *
FROM TABLE_A A
WHERE EXISTS (
    SELECT 1
    FROM TABLE_B B
    WHERE B.FIELD_1 = A.FIELD_1
      AND B.FIELD_2 = A.FIELD_2
);

方法3:INNER JOIN写法(适合需要同时返回TABLE_B字段的场景)

如果后续需要同时返回TABLE_B的其他关联字段,可以用该写法,注意加DISTINCT避免TABLE_B的重复组合导致结果重复:

SELECT DISTINCT A.*
FROM TABLE_A A
INNER JOIN TABLE_B B
  ON A.FIELD_1 = B.FIELD_1
 AND A.FIELD_2 = B.FIELD_2;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:36:00