如何在SQL中多表关联查询符合特定条件的数据?
实现需求的最优SQL方案
需求逻辑梳理
要完成的关联逻辑为:
- 匹配Table1的
c_id与Table2的dup_id相等的记录 - 提取这些匹配记录对应的Table2的
c_id - 通过该
c_id在Table3中获取对应的description
最优查询语句
使用**多表内连接(INNER JOIN)**是最高效的实现方式,内连接仅返回满足所有关联条件的记录,避免无效数据扫描,同时语句逻辑清晰易维护:
SELECT t2.c_id, t3.description FROM Table1 t1 INNER JOIN Table2 t2 ON t1.c_id = t2.dup_id INNER JOIN Table3 t3 ON t2.c_id = t3.c_id;
语句说明
- 给三张表分别取别名
t1、t2、t3,简化SQL语句的书写与阅读 - 第一个
INNER JOIN关联Table1和Table2,筛选出Table1.c_id = Table2.dup_id的记录 - 第二个
INNER JOIN将上一步得到的Table2的c_id与Table3的c_id关联,提取对应的description
查询结果
执行上述语句后,得到的结果如下:
| c_id | description | |-------------------|--------------| | 5 | yyyy |
内容的提问来源于stack exchange,提问作者yogesh
相关产品推荐
相关产品推荐

