select语句连接多个列

ivqmmu1c  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(384)

我有一个表,有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

我真的不知道从哪里开始这样提取数据。感谢您的帮助。

iswrvxsc

iswrvxsc1#

只有三列?试试这个。。。

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
t3irkdon

t3irkdon2#

你可以用 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

相关问题