简体   繁体   中英

Using group_concat mysql

I have tables jeans and bahanbenang and I want to use group_concat to concatenate multiple MySQL rows into one field. This is my SQL code:

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

giving the following result:

结果

My main question is why can't the resulting query return more than one value in columns warna and jenis ?

I want the result to be like this:

表bahanbenang

*update Iam trying following thi query

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

but the result same

在此输入图像描述

The JOIN condition should be improved. Try the following query.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM