有我的2个表:(只有我们感兴趣的列)
Table1:
ID | NAME
________|_______
0 | null
1 | Fire
2 | Rock
Table2:
ID | NAME | TYPE | TYPE2
________|________|________|_________
1 | El1 | 1 | 0
2 | El2 | 2 | 1
因此,我的table2包含一些元素,它们可以具有与第一个表的ID相匹配的2种类型
例如:
我需要一个请求,选择ID,NAME,TYPE,TYPE2,但用Table1中的NAME替换TYPE和TYPE2。
我一直在寻找INNER JOIN,但我不知道如何才能将其用于此结果...
我想要的结果是:(对于Table2第一行)
$el->ID // give me 1
$el->NAME // give me El1
$el->TYPE // give me Fire
$el->TYPE2 // give me null
但是我不知道该怎么做,已经两天了,我一直在寻找:(
答案 0 :(得分:0)
我认为您只需要两个内部联接。两个联接中的每个联接都会从第一个表中引入名称,用于第二个表中的一个类型列。
SELECT
t2.ID,
t2.NAME,
a.NAME,
b.NAME
FROM Table2 t2
INNER JOIN Table1 a
ON t2.TYPE = a.ID
INNER JOIN Table1 b
ON t2.TYPE2 = b.ID;