我有表produktransaksi_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

10-08 18:55