Hallo,ich frage mich gerade was es bei diesem SELECT auf sich hat.
SELECT name,region,population FROM bbc x WHERE 25000000 >= ALL (SELECT population FROM bbc y WHERE x.region=y.region AND y.population>0)
Kann mir jemand erklären was das x nach FROM bbc soll?
Das gleiche auch für >= ALL
Vielen Dank!
Hallo,ich frage mich gerade was es bei diesem SELECT auf sich hat.
SELECT name,region,population FROM bbc x WHERE 25000000 >= ALL (SELECT population FROM bbc y WHERE x.region=y.region AND y.population>0)
Kann mir jemand erklären was das x nach FROM bbc soll?
Das gleiche auch für >= ALL
Vielen Dank!
Das x ist einfach ein Alias, so wie auch das y. Das all (select col from …) liefert col zurück.
Gegenfrage: Wo hast das gesehen?
Andreas
Danke für die Antwort.
Ich übe gerade auf dem sqlzoo. Auf einer anderen Seite war das als Lösung angepriesen.
Ich muß nochmal nachhaken:
Das:
SELECT name,region,population FROM bbc x
ist nur die Kurzform von
SELECT name,region,population FROM bbc AS x
was bedeutet, dass die Ergebnismenge in x quasi abrufbar ist.
Gisman
6. Juli 2012 um 06:00
#6
Grund für die Aliase ist hier, das du in einem Statement zweimal auf die gleiche Tabelle in verschiedenen Kontexten zugreifen willst. Postgres bracht deshalb einen Hinweis, was wo gemeint ist.
Gruß Uwe