如何在右表中按列顺序左键连接

时间:2017-08-07 08:02:21

标签: mysql sql left-join sql-order-by

    SELECT S.ID_SUPPLIER, S.NAMA_PERUSAHAAN, S.NAMA_CP, S.EMAIL,
        P.ID_PROVINSI, P.NAMA_PROVINSI, K.ID_KK, K.NAMA_KK,
        GROUP_CONCAT(B.NAMA_BAHAN_BAKU) as NAMA_BAHAN_BAKU
    FROM M_SUPPLIER S
    LEFT JOIN M_PROVINSI P ON S.ID_PROVINSI = P.ID_PROVINSI
    LEFT JOIN M_KOTA_KABUPATEN K ON S.ID_KK = K.ID_KK
    LEFT JOIN SUPPLIER_BAHAN_BAKU SUP ON S.ID_SUPPLIER = SUP.ID_SUPPLIER
    LEFT JOIN M_BAHAN_BAKU B on B.ID_BAHAN_BAKU = SUP.ID_BAHAN_BAKU
    GROUP BY S.ID_SUPPLIER
    ORDER BY B.NAMA_BAHAN_BAKU ASC

This is what happen now

我想要的是NAMA_BAHAN_BAKU列是asc 喜欢这个..

ID_SUPPLIER |...| NAMA_BAHAN_BAKU
SU0002 |....|
Pewarna Makanan Egg Yellow,Pewarna Makanan Orange Red

(这就是我想要的。我希望能够出席)

SU0001 |....|
Baking Powder, Garam, Gula, MSG, Telur, Tepung Tapioka

(这就是我想要的。我希望能够出席)

1 个答案:

答案 0 :(得分:0)

尝试在group_concat内进行排序,然后在全局ORDER BY中取消b.,您正在使用别名:

SELECT S.ID_SUPPLIER, S.NAMA_PERUSAHAAN, S.NAMA_CP, S.EMAIL, P.ID_PROVINSI, P.NAMA_PROVINSI, K.ID_KK, K.NAMA_KK, GROUP_CONCAT(B.NAMA_BAHAN_BAKU ORDER BY B.NAMA_BAHAN_BAKU ASC) as NAMA_BAHAN_BAKU
FROM M_SUPPLIER S
LEFT JOIN M_PROVINSI P ON S.ID_PROVINSI = P.ID_PROVINSI
LEFT JOIN M_KOTA_KABUPATEN K ON S.ID_KK = K.ID_KK
LEFT JOIN SUPPLIER_BAHAN_BAKU SUP ON S.ID_SUPPLIER = SUP.ID_SUPPLIER
LEFT JOIN M_BAHAN_BAKU B on B.ID_BAHAN_BAKU = SUP.ID_BAHAN_BAKU
GROUP BY S.ID_SUPPLIER
ORDER BY NAMA_BAHAN_BAKU ASC