2016-11-22 3 views
-1

これは私の論文のためのものであり、後で私はここで何が間違っているのかわかりません。誰かが私に何が間違っているのかを教えてくれることを願っていますmysql#1242 - サブクエリが1行以上を返す

ここで何をしているイム
SELECT 
     flower_id, 
     flower_name, 
     flower_description, 
     flower_price, 
     flower_category, 
     (quantity - (SELECT 
       SUM(q.quantity_value) 
      FROM 
       orders_details od 
        INNER JOIN 
       cart_details cd ON cd.cart_id = od.cart_id 
        INNER JOIN 
       quantities q ON q.quantity_id = cd.quantity_id 
      WHERE 
       od.flag = 1 AND cd.flower_id = flower_id 
      GROUP BY cd.flower_id)) AS 'quantity', 
     mfg_date, 
     exp_date 
    FROM 
     flower_details, 
     categories 
    WHERE 
     flower_details.flower_category = categories.category_id 

あなたの副選択は、あなたの場合は、内部を使用して合計を参加すべき行が副選択 に参加するより、戻り場合は、顧客からの製品の合計数量が在庫の在庫

+0

何が欲しいですか?何を手に入れていますか? –

+0

製品在庫の差の合計を得る - 顧客が購入した製品と製品の一部の情報 –

+0

サブクエリのみを実行してデバッグしようとする – vstelmakh

答えて

0

にマイナスを買ってきていますsubselectより多くの行を返します。副選択の内部結合を使用して合計を結合する必要があります。副選択の内部結合

 SELECT 
     flower_details.flower_id, 
     flower_name, 
     flower_description, 
     flower_price, 
     flower_category, 
     flower_details.quantity - t1.quantity, 
     mfg_date, 
     exp_date 
    FROM flower_details 
    INNER JOIN categories ON flower_details.flower_category = categories.category_id 
    INNER JOIN  (
       SELECT cd.flower_id , 
       SUM(q.quantity_value) AS quantity 
      FROM 
       orders_details od 
        INNER JOIN 
       cart_details cd ON cd.cart_id = od.cart_id 
        INNER JOIN 
       quantities q ON q.quantity_id = cd.quantity_id 
      WHERE 
       od.flag = 1 AND cd.flower_id = flower_id 
      GROUP BY cd.flower_id 
    ) t1 on flower_details.flower_id = t1.flower_id 
+0

フィールドリストの 'quantity'列があいまいです –

+0

回答が更新されました。これはあいまいさを取り除くはずです – scaisEdge

+0

フィールドリストの 'quantity'列があいまいです: –

関連する問題