2016-05-03 22 views
1

大陸、名前と面積を示し、各大陸で(面積)最大の国を探す作品について説明することができます:あなたが持っている理由私は得ることはありません誰かがこのサブクエリとどのようにそれが

continent as Continent, 
name as Name, 
area as Area 
FROM world x 
WHERE area >= ALL(
    SELECT 
    area 
    FROM world y 
    WHERE y.continent = x.continent 
    AND area > 0 
) 

をこの場合、y.continent = x.continentを実行します。誰かがここで何が起こっているのか説明できますか?初心者からSQLに感謝します。

答えて

1

correlated subqueryと呼ばれ、continentが「外側」クエリの特定のレコードのcontinentと一致するすべてのレコードを返します。

あなたはこのケースでy.continent = x.continentをしなければならない理由を私は得ることはありません。

あなたがしなかった場合、それはworldだけでなく、ものcontinent試合からすべてレコードを返します。

クエリは大体に翻訳することになります。

は私にそのエリアの答えのための

+0

おかげで同じ大陸の他の国のすべて以上の国のすべてを与えます!それを読んで私はそれを少し分かります。この特定のクエリで操作の順序はどのようになりますか? –

+0

操作の順序が何であるかわかりません。 SQLは手続き型ではなくセットベースの言語なので、すべての場合において定義された「操作の順序」はありません。コンパイラは、さまざまな方法で物を並べ替えて、パフォーマンスを最適化することができます。 –

関連する問題