嵌套查询帮助

时间:2014-04-09 23:29:04

标签: mysql sql nested-query natural-join

我需要对此问题使用嵌套查询,但我之前从未使用过嵌套查询。任何帮助表示赞赏。这就是问题所在: "列出那些运输重量超过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

1 个答案:

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