如何使用mySQL将两列ID转换为两列Name?

时间:2018-04-30 21:46:55

标签: mysql

我有一个包含两列ID的表格,如下所示:

enter image description here

如何使用MySQL将其转换为具有相应名称的两列? enter image description here

1 个答案:

答案 0 :(得分:0)

没有表格定义,我们只是在猜测:

我们假设两列表名为first_table,并包含名为col1col2的列。 (我拒绝了Dr.Seuss般的诱惑,为他们命名thing1thing2。)

我们假设有第二个表,不幸的是名为second_table,其中包含ridname列。

我们可以使用这样的查询:

SELECT t.rid
     , s.name
  FROM ( SELECT t1.col1 AS rid
           FROM first_table t1
          UNION ALL
         SELECT t2.col2 
           FROM first_table t2
       ) t
  LEFT
  JOIN second_table s
    ON s.rid = t.rid
 ORDER
    BY t.rid

内联视图tcol1的内容放入一个集合中,然后将第二个集合连接到它,即col2的内容。这给了我们一个值列表。

我们将该查询包装成一组parens,将其转换为内联视图(如果我们使用MySQL白话,则将派生表。)

然后,我们可以执行连接操作来查找名称,在rid列上进行匹配。

这不是唯一的方法,还有其他查询模式会返回相同的结果。