MYSQL Group_Concat值为一个字段但保留多行

时间:2016-11-16 20:24:58

标签: mysql group-concat

我在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

有什么方法可以解决这个问题吗?我很感激帮助!

1 个答案:

答案 0 :(得分:1)

您需要使用返回连接值的子查询来连接表。

SELECT t1.Column1, g.c
FROM Table1 AS t1
CROSS JOIN (
    SELECT GROUP_CONCAT(Column1) AS c
    FROM Table1) AS g