sql简单3表连接使用相同的表?

Joe*_*Joe 1 sql join

我有两张桌子:

表1
id,name1

表2
id,name2a,name2b

表2的列名name2a和name2b是对表1的id的引用.我需要创建一个查询,根据表2中使用的id从表1中提取两个名称.

因此,如果表1包含:

1 Peter
2 Paul
Run Code Online (Sandbox Code Playgroud)

表2包含:

1 1 2
2 2 2
Run Code Online (Sandbox Code Playgroud)

然后一个选择语句应该给我:

Peter Paul
Paul Paul
Run Code Online (Sandbox Code Playgroud)

我试图建立这个SQL,并且我想出的最好的是:

SELECT table1.name AS 'name', table1.name AS 'Other name'
FROM table1, table2
WHERE table1.id = table2.name2a
Run Code Online (Sandbox Code Playgroud)

这只能正确地给我nameaa列.

任何帮助赞赏!我想我需要加入,但我真的很挣扎......

DRa*_*app 5

从第二个表开始,将TWICE连接到表1(分别为不同的别名),然后从每个别名的Table1条目中获取名称字段.

select 
      T2.ID,
      TJ1.Name1 as FirstName,
      TJ2.Name1 as SecondName
   from 
      Table2 t2
         join Table1 TJ1
            on t2.Name2a = TJ1.ID
         join Table1 TJ2
            on t2.Name2b = TJ2.ID
Run Code Online (Sandbox Code Playgroud)