我有一个包含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
我不太确定从哪里开始以这种方式提取数据。任何帮助表示赞赏。
答案 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