Mysql,内部连接在多个具有相同名称的列中

时间:2013-10-24 15:22:20

标签: mysql inner-join

所以,我有两张桌子,其中一张是这样的:

表:data

  id  |   col_1   |   col_2   |   col_3   |   col_4
------------------------------------------------------
  1   |     167   |    12     |     15    | something1
  2   |     198   |    27     |     12    | something2
  3   |     253   |    15     |     17    | something3

和表:catalog

  id  |   col_1
-----------------
  12  |   red
  15  |   yellow
  17  |   pink
  27  |   green

现在,我要做的是从col_1表中获取col_2col_3col_4data,而不是获取根据{{​​1}} col_2col_3col_1的值应由catalog表的catalog替换。

例如,我希望它为数据表的每一行返回以下信息:

    167 | red    | yellow | something1
    198 | green  | red    | something2
    253 | yellow | pink   | something3

我试过了:

id

但没有效果和惊喜。

我根本无法找到如何将一个表的多个列内部连接到另一个表的单个列,而Google并没有给出很大的帮助。我实际上不知道我是否正在使用正确的关键字进行搜索。

1 个答案:

答案 0 :(得分:3)

您必须为表名提供别名,因为它不知道目录所指的位置。

SELECT data.col_1, c1.col_1, c2.col_1, data.col_4
FROM data
INNER JOIN catalog c1 ON data.col_2 = c1.id
INNER JOIN catalog c2 ON data.col_3 = c2.id