我有表produk
和transaksi_detail
然后,我有两个查询。
第一个查询:
SELECT produk.idproduk, produk.nmproduk, COUNT(*) AS total
FROM produk, transaksi_detail
WHERE produk.idproduk=transaksi_detail.idproduk
GROUP BY produk.nmproduk
结果:
idproduk | nmproduk | total_order
-------------------------------------------
I3 coffe 6
I4 pencil 2
I1 bread 6
I2 snack 7
I5 tea 2
第二个查询:
SELECT GROUP_CONCAT(produk.idproduk) AS idproduk, transaksi_detail.idtransaksi
FROM produk, transaksi_detail
WHERE produk.idproduk=transaksi_detail.idproduk
GROUP BY transaksi_detail.idtransaksi
结果:
idproduk | idtransaction
----------------------------
I2, I1, I5 1
I2, I4 2
I2, I3 3
I2, I1, I4 4
I1, I3 5
I2, I3 7
I1, I3 8
如何根据第一个查询中的total_order使结果类似于第二个结果但“ idproduk-> GROUP_CONCAT”命令。
像这样 :
idproduk | idtransaction
----------------------------
I1, I2, I5 1
I4, I2 2
I3, I2 3
I4, I2, I1 4
I3, I1 5
I2, I3 7
I1, I3 8
“ idproduk”来自“ I2”的第一个,因为total_order比另一个'desc'大。
最佳答案
你可以试试
SELECT GROUP_CONCAT(order_count.idproduk ORDER BY order_count.total DESC) AS idproduk,
transaksi_detail.idtransaksi
FROM (SELECT produk.idproduk,
COUNT(*) AS total
FROM produk,
transaksi_detail
WHERE produk.idproduk = transaksi_detail.idproduk
GROUP BY produk.nmproduk) order_count
INNER JOIN transaksi_detail
ON order_count.idproduk = transaksi_detail.idproduk
GROUP BY transaksi_detail.idtransaksi