2017-11-09 7 views
0
SELECT li_1.carrier, li_1.product_id, li_1.quantity, products_description.products_name, sites.sites_id, sites.sites_name, counted_table.counted 
FROM inventory li_1 
INNER JOIN products_description ON li_1.product_id = products_description.products_id 
INNER JOIN sites ON products_description.data = sites.data 
INNER JOIN (
    SELECT SUM(li_2.quantity) AS counted 
    FROM inventory li_2 
    WHERE li_1.product_id = li_2.product_id 
) counted_table 
GROUP BY li_1.product_id 
ORDER BY li_1.id DESC 

サブクエリ内の各製品の総量をカウントするために親ID(product_id)を使用しようとしていますが、標準のmysqlエラーメッセージしか表示されません。子クエリに親IDを使用していますか?

だから、間違っている可能性が何

id | quantity | total 
--------------------------------- 
0001 |  2  | 6 
     |    | 
0001 |  4  | 6 

のようなもの?

+0

を固定することができます。新しいMySQLバージョンで互換モードでない限りエラーが発生し、古いバージョンでは予期しないデータが返されます。一般的なGROUP BYルールでは、「GROUP BY句が指定されている場合、SELECTリストの各列参照は、グループ化列を識別するか、または集合関数の引数でなければなりません。 – jarlh

+0

もう一度私のコメントを読んでください.... – jarlh

+0

@jarlh私の悪い - それを修正しました:-)でも同じ問題。 –

答えて

0

あなたは、サブクエリを変更した場合、GROUP BYが無効であることを

SELECT li_1.carrier, li_1.product_id, li_1.quantity, products_description.products_name, sites.sites_id, sites.sites_name, counted_table.counted 
FROM inventory li_1 
INNER JOIN products_description ON li_1.product_id = products_description.products_id 
INNER JOIN sites ON products_description.data = sites.data 
INNER JOIN (
    SELECT product_id,SUM(li_2.quantity) AS counted 
    FROM inventory li_2 
    GROUP BY li_2.product_id 
) counted_table ON li_1.product_id = counted_table.product_id 
ORDER BY li_1.id DESC 
+0

これは正しい答えです - ありがとう! :-) –

関連する問題