2014-04-09 99 views
0

我需要为这个问题使用嵌套查询,但我从来没有使用过嵌套查询。任何帮助表示赞赏。问题如下: “列出装运重量超过200磅的部件的供应商的名称。”嵌套查询帮助

下面是我使用自然连接代替。但问题需要嵌套查询。

SELECT Suppliers.sname 

FROM Suppliers NATURAL JOIN Shipments 

     NATURAL JOIN Parts 

WHERE Shipments.quantity >= '1' 

     AND Parts.weight > '200'; 

我试了一下,到目前为止,这是我所:

SELECT Suppliers.sname 

FROM Suppliers, Shipments 

WHERE Suppliers.snum = Shipments.snum 

     AND Shipments.quantity >= ‘1’ 

     AND (

      SELECT Parts.weight 

      FROM Parts 
      ) > ‘200’; 

这里的ERD图的图像链接: http://tinypic.com/r/244qr74/8

+0

您需要将货件和零件连接到一个栏上......那个栏是什么? – Gerrat

+0

表格零件中必须有一列可以将零件加入供应商和/或货件。一旦你发现你不需要嵌套查询,我想。即partId? – Achilles

+0

请添加表格的数据结构到问题中,否则我们无法回答。我们需要您在第一个查询中加入的列名称。 –

回答

1

我想原因他们希望您使用嵌套查询,即如果该供应商有多个重量超过200磅的零件,则您的自然连接会为单个供应商返回多个记录。现在,猜测你的钥匙,因为他们没有提供,我认为他们正在寻找的东西是这样的:

Select s.sname Supplier 
From Suppliers s 
Where s.snum In(
       Select Distinct sh.snum 
       From Shipments sh 
        Natural Join Parts p 
       Where p.Weight > 200) 

编辑我已经更新为使用SNUM键名称查询您更新PIC的显示。

+0

我添加了伴随该问题的ERD照片。也许这将有助于澄清更多。 – ArtisticMelody

+0

查询更新:) –

+0

非常感谢您的帮助!对此,我真的非常感激。 – ArtisticMelody