重命名内部连接中的列名

TJR*_*TJR 3 php mysql join inner-join

我有 2 张这样的表:

Table 'c'

|  id  |  item_1  |   item_2  |
-------------------------------
|  1   |   1      |    2      |
-------------------------------

Table 'i'

|  id  |  name    | 
-------------------
|  1   |   item   |   
-------------------
|  2   |  item_2  |
-------------------
Run Code Online (Sandbox Code Playgroud)

不,我需要从表 c 中获取结果包括项目的名称。所以我为此建立了一个内部联接。

SELECT c.*, i.name FROM c 

INNER JOIN i ON 
c.item_1 = i.id 
OR 
c.item_2 = i.id 
Run Code Online (Sandbox Code Playgroud)

这工作“很好”。但我得到这样的回报:

   |  id  |  item_1  |   item_2  |  name   |
    ----------------------------------------
    |  1   |   1      |    2      | item_2 |
    ----------------------------------------
Run Code Online (Sandbox Code Playgroud)

问题很明显 - 我需要为两个 item_id 取回 2 个名称,但只取一个。那么是否可以为该列设置一个新名称?像这样:

SELECT c.*, i.name FROM c 

INNER JOIN i ON 
c.item_1 = i.id SET name AS name_1
INNER JOIN i ON 
c.item_2 = i.id SET name AS name_2
Run Code Online (Sandbox Code Playgroud)

所以结果会是这样的:

   |  id  |  item_1  |   item_2  |  name_1   |  name_2 |
    ----------------------------------------------------
    |  1   |   1      |    2      | item_1 |  item_2   | 
    ----------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

Mar*_*ker 5

就像是?

SELECT c.*, 
       i1.name as name_1, 
       i2.name as name_2
  FROM c 
  INNER JOIN I as i1 
     ON c.item_1 = i1.id 
  INNER JOIN I as i2 
     ON c.item_2 = i2.id 
Run Code Online (Sandbox Code Playgroud)