Kalau menggabungkan beberapa kolom sebaris dalam sebuah tabel MySQL kita bisa menggunakan sintaks concat, lalu bagaimana menggabungkan beberapa row dengan kolom yang sama ke dalam satu baris?
Jawabanya adalah dengan menggunakan Group_Concat.
Sintaks:
GROUP_CONCAT(DISTINCT expression
ORDER BY {column_name | usinged_integer | expression}
SEPARATOR sep);
Keterangan:
- Distinct digunakan untuk menampilkan hanya data yang berbeda, menghilangkan duplikasi data.
- Seperti query pada umumnya Order By digunakan untuk sorting data, jika pada query biasa urutan secara vertikal, pada group concat urutan ditampilkan secara horizontal.
- Separator merupakan karakter pemisah antara nilai yang digabungkan, jika tidak menuliskannya maka nilai default adalah koma (,).
SELECT GROUP_CONCAT(nmproduk) AS nama FROM produk
Contoh 2: Penggabungan dengan Group Kategori
SELECT kategori, GROUP_CONCAT( nmproduk ) AS nama
FROM produk GROUP BY kategori
Contoh 3: Order By Alphabet nama
SELECT kategori,
GROUP_CONCAT( nmproduk ORDER BY nmproduk ) AS nama
FROM produk GROUP BY kategori
Contoh 4: Order By Harga termahal
SELECT kategori, GROUP_CONCAT( nmproduk
ORDER BY harga DESC ) AS nama
FROM produk
GROUP BY kategori
Contoh 5: Separator diganti jadi titik koma (;)
SELECT kategori,
GROUP_CONCAT( nmproduk ORDER BY harga SEPARATOR ';') AS nama
FROM produk GROUP BY kategori
Untuk contoh distinct kita akan menggunakan table transaksi_detail sebagai berikut:
Contoh 6: Distinct Produk per idtransaksi
SELECT idtransaksi,
GROUP_CONCAT(DISTINCT idproduk ORDER BY idproduk) AS idproduk
FROM transaksi_detail GROUP BY idtransaksi
Click here if you like this article.
0 Comments