我有表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'大。
答案 0 :(得分:0)
你可以尝试
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