如何编写单条MySQL多表关联查询以获取指定结果集?
解决方案:MySQL多表关联查询实现指定结果集
没问题,我来帮你搞定这个多表关联查询的需求~首先先明确三张表的结构与数据:
-- Table 1 id deg 101 ABC 202 PQR 303 XYZ -- Table 2 id t1_id name 1 202 Test 1 2 202 Test 2 3 101 Test 3 -- Table 3 id t2_id t1_id name 1 3 202 Job a 2 1 101 Job b 3 2 303 Job c
根据你需要的结果集,我们需要通过三次关联把各表的数据对应起来:
- 从Table2取出
t1_name,关联Table1拿到对应的t1_deg - 通过Table2的ID关联Table3,取出对应的
t2_name - 再通过Table3的
t1_id关联Table1的另一个实例,拿到对应的t2_deg
对应的MySQL查询语句如下:
SELECT t2.name AS t1_name, t1a.deg AS t1_deg, t3.name AS t2_name, t1b.deg AS t2_deg FROM Table2 t2 -- 关联Table1获取Table2对应的deg JOIN Table1 t1a ON t2.t1_id = t1a.id -- 关联Table3找到对应Job记录 JOIN Table3 t3 ON t2.id = t3.t2_id -- 再次关联Table1获取Table3对应的deg JOIN Table1 t1b ON t3.t1_id = t1b.id -- 保证结果顺序与需求一致 ORDER BY t2.id;
执行这条语句后,就能得到你想要的结果集:
t1_name t1_deg t2_name t2_deg Test 1 PQR Job b ABC Test 2 PQR Job c XYZ Test 3 ABC Job a PQR
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

