2017-03-01 17 views
-9

これらは、私たちのテーブルは以下のとおりです。このクエリをMySQLに書き込む方法を教えてください。

Suppliers(sid:integer,sname:string,address:string) 
Parts(pid:integer,pname:string,color:string) 
Catalog(sid:integer,pid:integer,cost:real) 

は、私は赤または緑の部分のいずれかを持っているすべてのサプライヤーのために、供給業者(sname)及びそれらのそれぞれが持っている最も高価な部分を私たちに名前を付けるためにクエリを記述する必要があります。

+1

サンプル・データは素晴らしく、あなたが遭遇した問題で、これまで一緒に持っているコードになります。 –

+0

サンプルデータがありません。これは私たちの試験で書かれたものですが、これは間違っていました:SELECT Supplier.pname、MAX(Catalog.cost) 部品、カタログ、サプライヤ WHERE Parts.color = 'RED' OR Parts .color = 'GREEN' AND Supplier.sid = Catalog.sid AND Parts.pid = Catalog.pid – omidelf

+0

あなたは何かを作ることができます。また、質問は不明です - 最も高価な部分は、最も高価な赤または緑の部分を意味するか、または色が無関係です。 –

答えて

0

私はそれぞれを聞くとすぐに結果をグループ化すると思います。だから、あなたはgroup by節がありません。すべてのサプライヤに基づいてデータをグループ化する必要がありました。 私はjoinを使うのがより快適です。 私は、正しい答えがあることだと思う:

SELECT S.name, Max(C.cost) FROM Suppliers S 
INNER JOIN Catalog C On S.sid = C.sid 
INNER JOIN Parts P on P.pid = C.pid 
Where P.color = 'RED' OR P.color = 'GREEN' 
GROUP BY S.name 
関連する問題