单独逗号并从另一个表获取值并连接结果值

时间:2017-03-15 05:37:49

标签: mysql

首先假设我的table1是:

id name
----------
1  abc
2  bcd
3  cde

在table2中我存储

id table1_id
------------
1  1,2
2  1,3
3  1,2,3

我想要这样的输出

id table1_value
----------------
1  abc,bcd
2  abc,cde
3  abc,bcd,cde

请帮我处理mysql查询..

1 个答案:

答案 0 :(得分:3)

以下是一个符合您要求的查询。正如@GurV在上面评论过的那样,你应该避免在你的表中存储CSV数据,这些数据没有规范化,并且它阻碍了MySQL作为关系数据库的大部分功能。

SELECT t2.id,
       GROUP_CONCAT(t1.name ORDER BY t1.name) AS table1_value
FROM table2 t2
INNER JOIN table1 t1
    ON FIND_IN_SET(t1.id, t2.table1_id) > 0
GROUP BY t2.id

<强>输出:

enter image description here

在这里演示:

Rextester