我有表jeans
和bahanbenang
,我想用group_concat
将多个MySQL行连接成一个字段。 这是我的SQL代码:使用group_concat mysql
SELECT jeans.id_jeans, jeans.id_benang, GROUP_CONCAT(bahanbenang.warna
SEPARATOR ', ') AS warna, GROUP_CONCAT(bahanbenang.jenis
SEPARATOR ', ') AS jenis
FROM jeans
LEFT JOIN bahanbenang ON jeans.id_benang = bahanbenang.id_benang
GROUP BY jeans.id_jeans
给出以下结果:
我的主要问题是,为什么不能生成的查询返回多列warna
和jenis
一个值?
我想要的结果是这样的:
*更新 荫试图THI查询
SELECT
jeans.id_jeans, jeans.id_benang,
GROUP_CONCAT(bahanbenang.warna SEPARATOR ', ') AS warna,
GROUP_CONCAT(bahanbenang.jenis SEPARATOR ', ') AS jenis
FROM jeans
LEFT JOIN bahanbenang ON FIND_IN_SET(bahanbenang.id_benang, jeans.id_benang) = 1
GROUP BY jeans.id_benang
,但结果相同以下
在单个列中存储ID列表是一个坏的,坏的,坏主意。这些ID是数字,不应将数字存储为字符串。 Ids应具有外键关系,并且字符串中的多个值不能具有外键关系。任何由此产生的查询都不能使用索引。重组您的数据以使用联结表。 –