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

如何编写单条SQL查询实现从TABLE1中获取匹配TABLE2筛选条件的结果

问题原因

  1. 你使用=匹配子查询结果,当子查询返回多条记录时会触发语法错误,本次你写的子查询会匹配到TABLE2中ID为1和2的两条记录,返回两个BRAVO,用=无法匹配多值结果
  2. concat(C2)属于无效冗余操作,仅操作单个字段不需要调用拼接函数,直接使用C2即可

正确写法

方案1:IN子查询写法(逻辑更贴近你的原实现思路)

SELECT * FROM TABLE1 WHERE B1 IN (SELECT DISTINCT C1 FROM TABLE2 WHERE C2 LIKE '%NETW%');

说明:IN关键字支持匹配多个子查询返回值,加DISTINCT是避免TABLE2返回重复的C1值,降低匹配开销。

方案2:内连接写法(数据量较大时性能更优)

SELECT DISTINCT t1.* 
FROM TABLE1 t1
INNER JOIN TABLE2 t2 ON t1.B1 = t2.C1
WHERE t2.C2 LIKE '%NETW%';

说明:通过表关联直接过滤符合条件的记录,加DISTINCT是避免TABLE2有多条匹配记录时,TABLE1的结果行重复输出。

执行结果

最终会返回TABLE1中符合条件的行:

IDB1B2B3
2BRAVOASDFOK

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 15:06:06