我有一个包含两列ID的表格,如下所示:
如何使用MySQL将其转换为具有相应名称的两列? enter image description here
答案 0 :(得分:0)
没有表格定义,我们只是在猜测:
我们假设两列表名为first_table
,并包含名为col1
和col2
的列。 (我拒绝了Dr.Seuss般的诱惑,为他们命名thing1
和thing2
。)
我们假设有第二个表,不幸的是名为second_table
,其中包含rid
和name
列。
我们可以使用这样的查询:
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
内联视图t
将col1
的内容放入一个集合中,然后将第二个集合连接到它,即col2
的内容。这给了我们一个值列表。
我们将该查询包装成一组parens,将其转换为内联视图(如果我们使用MySQL白话,则将派生表。)
然后,我们可以执行连接操作来查找名称,在rid
列上进行匹配。
这不是唯一的方法,还有其他查询模式会返回相同的结果。