Witaj ponownie, @name! Stoisz u wrót Labiryntu Zapytań - najbardziej zawiłej części Wielkiej Biblioteki. To tutaj przechowuję zwoje, których nie da się odnaleźć jednym prostym spojrzeniem na regał. Czasem, by znaleźć jedną księgę, trzeba najpierw zadać Bibliotece inne pytanie, a dopiero jego odpowiedź wskaże właściwą półkę.
W naszym świecie taki chwyt nazywamy podzapytaniem (subquery). To zwykłe zapytanie SELECT zamknięte w nawiasach okrągłych i umieszczone wewnątrz innego zapytania.
1SELECT tytul
2FROM ksiazki
3WHERE cena > (SELECT AVG(cena) FROM ksiazki);Najpierw Biblioteka wykonuje podzapytanie wewnętrzne - liczy średnią cenę wszystkich ksiąg. Dopiero potem zapytanie zewnętrzne używa tej liczby, by wybrać księgi droższe od średniej.
Przejdziemy przez wszystkie korytarze Labiryntu: podzapytania skalarne, operator IN, podzapytania skorelowane, EXISTS / NOT EXISTS, tabele pochodne w klauzuli FROM oraz łączenie zbiorów przez UNION i UNION ALL.
Trzymaj się mocno nici Ariadny - czyli logiki zapytania - a nie zgubisz się w zaułkach. Ruszamy!
@name