mysql - SQL 连接一列中的多个值,以逗号分隔

标签 mysql

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

表1
身份证 |值(value)
---------------
1 | 34,54
2 | 76
3 | 12,8
4 | 3,90,78

表2
身份证 |值(value)
---------------
34 | 34绿色
54 | 54红色
76 | 76黑色
12 | 12白色
8 |蓝色
3 |橙色
。 。 .

我希望输出看起来像

输出表
表1.ID |表2.值
---------------
1 |绿色,红色
2 |黑色
3 |白色、蓝色

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

最佳答案

在您进行规范化之前,使用 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 

关于mysql - SQL 连接一列中的多个值,以逗号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30305131/

相关文章:

mysql修改datetime设置时分不修改月年日

mysql - 如何从 RDS Mysql 复制中排除某些表

php - 在php中通过索引选择性地迭代多维关联数组

php - 这种ajax登录方法是否安全?

php - 使用php将表单数据转换为mysql

java - spark/java中的TINYINT(1)

java - 从java启动mysql服务器

java - 列数与第 1 行 java 的值数不匹配

mysql - SQL 结果包含多行

c++ - 为什么简单的 mysql++ 代码可以独立编译,但不能在项目中编译?