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

如何编写三表关联SQL查询?从main_table获取指定条件数据

三张表关联查询实现方案

要实现通过table_1关联,获取main_table中满足table_2.necessary_column为指定值的数据,本质就是在两表关联的基础上,再加入第三张表的关联条件即可,核心是利用表之间的外键关系逐步关联。

方法一:使用INNER JOIN关联三张表

这是最常用的写法,逻辑清晰,适合大部分场景:

SELECT main_table.*  -- 按需指定要查询的列,比如main_table.column1, main_table.column2等
FROM main_table
INNER JOIN table_1 ON main_table.id = table_1.main_table_id
INNER JOIN table_2 ON table_1.id = table_2.table_1_id
WHERE table_2.necessary_column = '你的指定值';  -- 替换成实际需要的值

方法二:使用子查询嵌套

如果你更习惯子查询的写法,也可以先筛选出符合条件的table_1记录,再关联main_table:

SELECT main_table.*
FROM main_table
INNER JOIN (
    SELECT table_1.main_table_id
    FROM table_1
    INNER JOIN table_2 ON table_1.id = table_2.table_1_id
    WHERE table_2.necessary_column = '你的指定值'
) AS filtered_table1 ON main_table.id = filtered_table1.main_table_id;

补充说明

  • INNER JOIN会只返回三张表中关联匹配且满足筛选条件的记录,如果需要保留main_table中无匹配的记录,可以改用LEFT JOIN(此时需将筛选条件移至ON子句中,避免逻辑变成INNER JOIN)。
  • 若necessary_column是数值类型,去掉值的引号即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:35:01