2014-02-11 97 views
0

我正在嘗試使用SQL從我的數據庫中獲取結果,但我無法獲得正確的查詢。SQL表連接

enter image description here

以上是從我的數據庫實體描述,我想回去的產品,數量,以及與之相關的配件的價格信息。 ProductParts表是Product和Part之間的鏈接表。

enter image description hereenter image description here

這裏是在ProductParts表中的值,並且,我想回去的結果。我一直在使用一個交叉連接嘗試,但我似乎無法得到它是正確的,我一直得到的結果是這樣的(如下圖)

enter image description here

我目前使用此查詢

SELECT 
Product.Price, 
Product.Quantity, 
kit_name.PartID as "Kit Name", 
blank_name.PartID as "Blank Name" 
FROM Product 
CROSS JOIN ProductParts as kit_name 
CROSS JOIN ProductParts as blank_name 
WHERE Product.ProductID = 3 
AND Product.ProductID = kit_name.ProductID 
AND Product.ProductID = blank_name.ProductID 

這是結果我回來

enter image description here

+0

你只想每個產品的單排,即使有多個部位? –

+0

是的,我在每個產品的一行之後,並且在該行上都有部件ID – user2099020

回答

0

試試這個:

SELECT 
    Product.Price, 
    Product.Quantity, 
    p.PartID AS PartID, 
FROM Product 
INNER JOIN ProductParts as pp 
    ON pp.ProductId=Product.ProductId 
INNER JOIN Parts as p 
    ON p.PartId=pp.PartId 
WHERE Product.ProductID = 3 
0

一個ProductPartProductPart之間的簡單內連接將工作:

SELECT 
    prod.Price, 
    prod.Quantity, 
    prod.ProductId as "Kit Name", 
    part.PartID as "Blank Name" 
FROM ProductParts pp 
JOIN Product as prod 
on pp.ProductId = prod.ProductId 
JOIN Parts part 
on pp.PartId = part.PartId 
WHERE pp.ProductID = 3