3

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

桌子:data

  编号 | col_1 | col_2 | col_3 | col_4
-------------------------------------------------- ----
  1 | 167 | 12 | 15 | 某事1
  2 | 198 | 27 | 12 | 某事2
  3 | 253 | 15 | 17 | 某事3

和表:catalog

  编号 | col_1
-----------------
  12 | 红色的
  15 | 黄色
  17 | 粉色的
  27 | 绿色

现在,我要做的是从表中获取、col_1和,col_2但是根据.col_3col_4datacol_2col_3col_1catalogcatalog id

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

    167 | 红色 | 黄色 | 某事1
    198 | 绿色 | 红色 | 某事2
    253 | 黄色 | 粉红色 | 某事3

我试过这个:

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

但没有效果和惊喜。

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

4

1 回答 1

4

你必须给表名一个别名,因为它不知道目录指的是哪里。

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
于 2013-10-24T15:30:03.327 回答