O lekcji
Podzapytania to zapytania SQL zagnieżdżone wewnątrz innych zapytań. Mogą być używane w klauzulach SELECT, WHERE, FROM.
Proste podzapytania
Podzapytanie zwraca pojedynczą wartość, która może być użyta w głównym zapytaniu.
Przykład: Znalezienie klienta o największej liczbie zamówień:
SELECT Imię
FROM Klienci
WHERE ID = (SELECT Klient_ID FROM Zamowienia GROUP BY Klient_ID ORDER BY COUNT(*) DESC LIMIT 1);
Zagnieżdżone podzapytania
Zagnieżdżone podzapytania mogą być bardziej skomplikowane i zwracać całe zestawy wyników. Na przykład:
SELECT Imię
FROM Klienci
WHERE ID IN (SELECT Klient_ID FROM Zamowienia);
Użycie podzapytań w klauzulach WHERE i SELECT
Podzapytania mogą być używane w wielu miejscach:
-
Klauzula WHERE:
SELECT * FROM Klienci WHERE ID NOT IN (SELECT Klient_ID FROM Zamowienia);
(Zwraca klientów, którzy nie złożyli zamówień).
-
Klauzula SELECT:
SELECT Imię, (SELECT COUNT(*) FROM Zamowienia WHERE Zamowienia.Klient_ID = Klienci.ID) AS Liczba_Zamówień FROM Klienci;
(Pokazuje klientów oraz liczbę ich zamówień).