我在MySQL中有两个表,一个在每行中包含一个值,另一个包含相同的值,但它们都组合成一行。例如:
表1:
Column1
a
b
表2:
Column1
a,b
我想根据表1创建一个映射表,以便我可以对它们进行连接。我正在寻找的结果是:
Column1 | Column2
a | a,b
b | a,b
我试过这个:
SELECT Column1, GROUP_CONCAT(DISTINCT Column1) AS Column2
FROM Table1
但它只返回一行:
Column1 | Column2
a | a,b
我也尝试过添加group by子句:
SELECT Column1, GROUP_CONCAT(DISTINCT Column1) AS Column2
FROM Table1
GROUP BY Column1
返回每一行,但不将字段连接到column2:
Column1 | Column2
a | a
b | b
有什么方法可以解决这个问题吗?我很感激帮助!
答案 0 :(得分:1)
您需要使用返回连接值的子查询来连接表。
SELECT t1.Column1, g.c
FROM Table1 AS t1
CROSS JOIN (
SELECT GROUP_CONCAT(Column1) AS c
FROM Table1) AS g