![](/img/trans.png)
[英]MySQL: one column/multiple rows group_concat into multiple columns filled with values from another column
[英]MYSQL Group_Concat values into one field but keep multiple rows
我在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
有什么办法解决这个问题? 感谢您的帮助!
您需要使用一个返回连接值的子查询将表连接起来。
SELECT t1.Column1, g.c
FROM Table1 AS t1
CROSS JOIN (
SELECT GROUP_CONCAT(Column1) AS c
FROM Table1) AS g
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.