0

この問題にはネストされたクエリを使用する必要がありますが、これまでネストされたクエリを使用したことがありません。どんな助けでも大歓迎です。問題は次のとおりです。「200 ポンドを超える部品を出荷するサプライヤーの名前を挙げてください。

代わりに Natural Join を使用したものを次に示します。しかし、問題にはネストされたクエリが必要です。

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

ネストされたクエリを使用する必要がある理由は、1 つのサプライヤーが 200 ポンドを超える部品を含む複数の出荷を行っている場合、自然な結合が 1 つのサプライヤーに対して複数のレコードを返すためだと思います。今、鍵が提供されていないので推測すると、彼らは次のようなものを探していると思います:

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 に答える