SQL表连接

时间:2014-02-11 09:51:45

标签: sql

我正在尝试使用SQL从我的数据库中获取结果,但我无法正确查询。

enter image description here

以上是我数据库中的实体描述,我想获取产品价格,数量以及与之相关的部件的信息。 ProductParts表是Product和Part之间的链接表。

enter image description here enter 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

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分: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