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

基于SELECT查询结果关联表出错,寻求正确SQL实现方案

解决SQL关联查询的问题

你的核心需求是筛选出tab_1中id_1等于id_2的记录,再关联tab_2中匹配的id_3,最终输出id_1、id_3和name三个字段。你原来的SQL只查询了tab_2的数据,所以没办法获取tab_1的id_1字段,而且关联逻辑可以优化得更清晰高效。

推荐方案:使用INNER JOIN关联查询

这种方式逻辑直观,性能更优,直接把表关联条件和筛选条件整合在一起:

SELECT t1.id_1, t2.id_3, t2.name
FROM tab_1 t1
INNER JOIN tab_2 t2 
    ON t1.id_1 = t2.id_3
WHERE t1.id_1 = t1.id_2;

基于你原有思路的修改版本

如果你想保留IN子查询的写法,需要同时关联tab_1来获取目标字段:

SELECT t1.id_1, t2.id_3, t2.name
FROM tab_1 t1
JOIN tab_2 t2 
    ON t1.id_1 = t2.id_3
WHERE t2.id_3 IN (
    SELECT id_1 
    FROM tab_1 
    WHERE id_1 = id_2
);

结果验证

运行上述任意一段SQL,都会得到你期望的输出:

id_1 | id_3 | name
ab01 | ab01 | test
ab02 | ab02 | test

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 10:52:52