SQL连接在一列中以逗号分隔的多个值

时间:2015-05-18 13:54:53

标签: mysql

我需要连接两个表,但我的一个表列有多个值,每个值都用逗号分隔。而其他表具有该id的值。请参阅下面的示例

表1 ID |值
---------------
1 | 34,54
2 | 76个
3 | 12,8
4 | 3,90,78

表2 ID |值
---------------
34 |绿色
54 |红
76 |黑
12 |白
8 |蓝
3 |橙色
。 。

我希望输出看起来像

输出表
table1.ID | table2.Value
---------------
1 |绿色,红色
2 |黑
3 |白,蓝

欢迎任何帮助,提前谢谢。

2 个答案:

答案 0 :(得分:0)

在进行规范化之前,使用find_in_setgroup_concat

这种方法效率不高
select 
t1.id,
group_concat(t2.value) as value 
from table1 t1 
join table2 t2 on find_in_set(t2.id,t1.value) 
group by t1.id 

答案 1 :(得分:0)

SELECT service_type.id GROUP_CONCAT(usermeta.meta_value)AS值FROM wpxx_service_type AS service_type JOIN wpxx_usermeta AS usermeta ON FIND_IN_SET(service_type.id,usermeta.meta_value)WHERE usermeta.meta_key ='work_area'GROUP BY service_type.id Order by service_type .service_title ASC

我加入两个表wpxx_service_type和wpxx_usermeta usermeta。这个对我有用。 :)