选择多列联接的语句

时间:2018-06-22 14:25:02

标签: mysql

我有一个包含3列的表,每个列包含另一个表的ID,我试图找到一种方法来拉回每个ID的名称,但不确定如何仅使用sql来做到这一点。必须在php循环中运行。 N1,N2和N3是T2的ID。

 T1                         T2
------------------          -----------------         
ID    N1   N2   N3          ID    Name
1     2    3    1           1     Steve
2     3    2    1           2     Bob
3     1    2    3           3     Dan

我想要的输出是

T1.id    T1.N1     T1.N2    T1.N3
1        Bob       Dan      Steve

我不太确定从哪里开始以这种方式提取数据。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

您可以多次使用LEFT JOIN

  SELECT t.ID,t21.Name,t22.Name,t23.Name 
     FROM table1 t 
     LEFT JOIN table2 t21 ON t21.ID=t.N1
     LEFT JOIN table2 t22 ON t22.ID=t.N2
     LEFT JOIN table2 t23 ON t23.ID=t.N3

答案 1 :(得分:1)

只有三列? 只需尝试一下...

select id, 
      (select T2.Name from T2 where T2.id = N1) as N1, 
      (select T2.Name from T2 where T2.id = N2) as N2, 
      (select T2.Name from T2 where T2.id = N3) as N3
from T1