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

如何在WHERE子句中使用元组筛选与Table2匹配的Table1数据

使用元组IN条件筛选匹配Table2的Table1记录

你之前的查询返回全量数据是因为子查询的数据源错误——你从Table1本身获取(Project, Currency)组合,相当于让Table1的每条记录和自身的组合匹配,自然会返回所有数据。

正确的元组IN写法

直接从Table2中获取目标组合即可,SQL语句如下:

SELECT * 
FROM Table1
WHERE (Project, Currency) IN (
    SELECT Project, Currency 
    FROM Table2
)

可选优化:去重子查询结果

如果Table2中存在重复的(Project, Currency)组合,可以给子查询加上DISTINCT(不过IN子句会自动处理重复值,不加也不影响结果):

SELECT * 
FROM Table1
WHERE (Project, Currency) IN (
    SELECT DISTINCT Project, Currency 
    FROM Table2
)

和左连接写法的对比

你之前的左连接写法是从Table2出发关联Table1,最终结果和上述IN查询一致,但IN的写法更直接对应“从Table1筛选存在于Table2的组合”的需求,逻辑上更直观。

内容的提问来源于stack exchange,提问作者Oumayma El Jahrani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:50:25