Podzapytania: Podzapytania niepowiązane w SQL cz. I
Ćwiczenia
Pobierzmy za pomocą podzapytań informacje o pracownikach, którzy mieszkają w Warszawie:
SELECT imie, nazwisko FROM pracownicy WHERE miasto = (SELECT miastoZamieszkaniaID FROM miastoZamieszkania WHERE miasto = 'Warszawa');
Wynik powyższego zapytania:
Imie | Nazwisko |
Michał | Jakubiak |
Jak to działa?
Na samym początku zostało uruchomione nasze podzapytanie:
SELECT miastoZamieszkaniaID FROM miastoZamieszkania WHERE miasto = 'Warszawa'
Pobraliśmy tutaj miastoZamieszkaniaID
dla „Warszawy” czyli po prostu „2”. Następnie zostało uruchomione zewnętrzne zapytanie dla pobranej wcześniej wartości. Czyli wyglądało to tak:
SELECT imie, nazwisko FROM pracownicy WHERE miasto = (2);
Przejdźmy teraz do kolejnego ćwiczenia.
Wcześniej pobraliśmy informacje o pracownikach mieszkających w Warszawie za pomocą podzapytań. Wyświetliliśmy wtedy imię i nazwisko ale co zrobić, jeżeli będziemy potrzebowali jeszcze nazwę miasta?
Oczywiście aby rozwiązać ten problem również można wykorzystać podzapytania:
SELECT imie, nazwisko, (SELECT miasto FROM miastoZamieszkania WHERE miasto = 'Warszawa') AS Miasto FROM pracownicy WHERE miasto = (SELECT miastoZamieszkaniaID FROM miastoZamieszkania WHERE miasto = 'Warszawa');
Rezultat:
Imie | Nazwisko | Miasto |
Michał | Jakubiak | Warszawa |
Jak widać na powyższym przykładzie podzapytania mogą być również wywoływane w klauzuli SELECT.
Podzapytania mogą być częścią wyrażeń arytmetycznych:
SELECT dataDzisiejsza - (SELECT dataUrodzenia FROM pracownicy WHERE ID = 2) WHERE ID = 2;
Można je również dowolnie zagnieżdżać.
Strony: 1 2