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

4

1 回答 1

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 密钥名称。

于 2014-04-09T23:54:36.907 回答