2014-01-19 116 views
0

我正在嘗試使用SQL,並且在組合多個表的信息時遇到困難。使用w3school,但他們似乎沒有類似的參考下面的問題。正在考慮加入他們作爲我的代碼下面,但仍然沒有回答這個問題。欣賞任何建議。謝謝。加入兩個表並從結果中選擇

問題:

產品(ITEMID,描述,數量,供應商ID)

供應商(供應商ID,姓名,地址)

產品可以由多於一個的供應商提供。寫入SQL到 列出每個供應商的每個產品的數量。

SELECT Products.quanity, Supplier.name 
FROM Products INNER JOIN Supplier 
ON Products.supplierID = Supplier.supplierID; 
+0

我想你也會想'SELECT'' Products.description'或'Products.itemID',給出這個問題的措辭。 – dursk

+0

這應該可以幫助你理解'JOIN's:http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html – dursk

+0

如果一個產品可以由許多供應商提供。我想你有一個表加入產品和供應商。如果你有它,請顯示它。 – vidaica

回答

0

假設product表中沒有兩行相同的供應商和產品,那麼你的查詢是非常接近的。我將它寫成:

SELECT p.description as ProductDescription, s.name as SupllierName, p.Quantity 
FROM Products p INNER JOIN 
    Supplier s 
    ON p.supplierID = s.supplierID 
ORDER BY p.description, p.Quantity desc; 

注意以下幾點:

  • 使用表別名(在ps)使查詢更具可讀性和用於每列參考。
  • 最終結果是按產品明確訂貨,最大數量在先。
  • 如果給定產品和供應商有多行,那麼您將需要聚合。
0

看起來你需要在這裏使用group by

select itemId, supplierId, sum(quantity) from Products group by itemId, supplierId; 
+0

此分組僅影響表格產品。它如何與供應商結合以獲得供應商名稱,以便將其與數量一起列出? –

+0

'select A.itemId,A.qnt,Suppliers.name from (selectId,supplierId,sum(quantity)as qnt from Products group by itemId,supplierId)A, 供應商 其中A.supplierId = Suppliers.supplierId' –

相關問題