Jak rozumieć zapytanie

0

Witam, uczę się SQL z stronki http://sqlzoo.net/wiki/Main_Page przerobiłem wszystkie lekcje jednak nie mogę zrozumieć jak działa zapytanie

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

Ni w ząb nie wiem czemu y.continent=x.continent przecież to ta sama kolumna z tymi samymi danymi. To jakaś pętla?
Bardzo proszę o pomoc w zrozumieniu tego przykładu.

Pozdrawiam

2

To nie są te same dane. Robisz dwa zapytania do tej tabeli i żeby rozgraniczych ich wyniki użwasz aliastów X oraz Y.
Podzapytanie:

SELECT area FROM world y
WHERE y.continent=x.continent AND area>0

wybiera area wszystkich rekordów w tabeli world, które są dodatnie i które leżą na wybranym kontynencie.

Zapytanie zewnętrzne wybiera rekordy z world takie które mają największe area na kontynencie na którym się znajdują.

W pewnym sensie mógłbyś to potraktować jako "pętlę". Bo to trochę tak jakbyś szukał w tablicy na przykład wartości maksymalnej jednocześnie dla liczb parzystych jak i nieparzystych. Zewnętrzne zapytanie to byłaby pętla po wszystkich wartościach w tablicy, dla sprawdzenia czy ta wartość jest największa, podzapytanie to byłaby pętla która porównuje dany element ze wszystkimi pozostałymi w tablicy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1