MySQL从2个表中选择并替换值

时间:2018-09-02 13:58:32

标签: mysql

有我的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种类型

例如:

  • El1只限火
  • El2是Rock + Fire

我需要一个请求,选择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

但是我不知道该怎么做,已经两天了,我一直在寻找:(

1 个答案:

答案 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;

enter image description here

Demo