0

次のクエリによって返された結果を GROUP_CONCAT しようとしています。

SELECT
      CONCAT(p.product_name, " (", SUM(bp.quantity), ")") AS products
FROM product p
INNER JOIN booking_products bp ON p.product_id = bp.product_id
GROUP BY p.product_id

このクエリは次を返します。

------------
| products |
------------
Shampoo (3)
Advil (1)
Dry Shampoo (4)
Cepacol (5)

以下のクエリを実行しようとすると、「#1111 - グループ関数の使用が無効です」というエラーが表示されます。これの何が問題なのですか?

SELECT
    GROUP_CONCAT(
        CONCAT(p.product_name, " (", SUM(bp.quantity), ")") 
        SEPARATOR ", "
    ) AS products
FROM product p
INNER JOIN booking_products bp ON p.product_id = bp.product_i
GROUP BY p.product_id

確かにそれは返されるはずです:

Shampoo (3), Advil (1), Dry Shampoo (4), Cepacol (5)

助けてくれてありがとう。

4

1 に答える 1

7
SELECT GROUP_CONCAT(products) FROM
(
    SELECT CONCAT(p.product_name, " (", SUM(bp.quantity), ")") AS products
    FROM product p
    INNER JOIN booking_products bp ON p.product_id = bp.product_id
    GROUP BY p.product_id
) x

GROUP関数であるSUMをすでに使用しているため、GROUP_CONCATは機能していません。

于 2013-02-02T12:11:22.980 に答える