2016-04-22 9 views
0

内の別のテーブルを形成し、ここで、各Product_Idの残りの株式を取得するための私のクエリがあります。しかし、ProductテーブルからProduct_Nameを追加する方法についてはわかりません。 i.Product_Idp.Product_Nameに置き換え、pをProductのエイリアスに置き換えます。 Product pFROMに挿入する必要がありますが、指定したクエリとの接続方法はわかりません。ところで名前とIDを交換すると、既存のクエリ

Product.Id = Inventory.Product_Id

SELECT 
i.Product_Id, 
i.Stocks, 
s.Sales, 
i.Stocks - s.Sales AS Remaining 
FROM (SELECT product_id, COALESCE(SUM(quantity),0) AS Stocks FROM inventory GROUP BY product_id) i 
LEFT JOIN (SELECT product_id, COALESCE(SUM(quantity),0) AS Sales FROM sales_detail GROUP BY product_id) s 
USING(product_id); 

事前にみんなに感謝します!

UPDATE !! 以下の質問は私の更新されたものです。既存のと正しく製品をリンクしているかどうか確認できますか?

SELECT 
i.Product_Id, 
p.Product_Name, 
i.Stocks, 
s.Sales, 
i.Stocks - s.Sales AS Remaining 
FROM (SELECT product_id, COALESCE(SUM(quantity),0) AS Stocks FROM inventory GROUP BY product_id) i 
LEFT JOIN (SELECT product_id, COALESCE(SUM(quantity),0) AS Sales FROM sales_detail GROUP BY product_id) s 
USING(product_id) 
JOIN Product p 
ON i.Product_Id=p.Id; 

答えて

1

は、あなただけのProductsテーブルでJOINする必要があります。

SELECT 
    p.Product_Name, 
    i.Stocks, 
    s.Sales, 
    i.Stocks - s.Sales AS Remaining 
FROM (SELECT product_id, COALESCE(SUM(quantity),0) AS Stocks FROM inventory GROUP BY product_id) i 
JOIN Products AS p USING (product_id) 
LEFT JOIN (SELECT product_id, COALESCE(SUM(quantity),0) AS Sales FROM sales_detail GROUP BY product_id) s 
USING(product_id) 
+0

おかげBarmar!私は答えを待つ間に私の質問に答えました。更新された質問の一番下にある質問も正しいですか?通常のJOINの代わりにLEFT JOINを使用する方が本当に良いでしょうか? –

+0

お待ちください、私はまだあなたのクエリを見直しています。なぜあなたは 'FROM'と' LEFT JOIN'の間に 'JOIN'のProductsテーブルを置いたのですか? LEFT JOINの直後に 'JOIN'という商品を置くだけでは、違う結果になるのでしょうか? –

+0

この場合は違いはありませんが、場合によっては、外部ジョインの前にすべての内部ジョインを持つことが重要です。 – Barmar

関連する問題