Samouczek dotyczący podzapytań MySQL

Autor: Marcus Baldwin
Data Utworzenia: 20 Czerwiec 2021
Data Aktualizacji: 13 Listopad 2024
Anonim
Subquery In SQL | SQL Subquery Tutorial With Examples | SQL Tutorial For Beginners | Simplilearn
Wideo: Subquery In SQL | SQL Subquery Tutorial With Examples | SQL Tutorial For Beginners | Simplilearn

Zawartość

Podzapytania to zapytania zagnieżdżone w innym. Pozwalają na oddzielenie części zdania i zapewniają bardziej czytelną alternatywę dla operacji, które mogą wymagać złożonych złączeń i związków. Podzapytania w MySQL mogą zwracać wartość, wiersz, kolumnę lub tabelę danych.


Użyj podzapytań, aby utworzyć bardziej czytelne i zwarte zdania (Obrazy Thinkstock / Comstock / Getty Images)

Składnia

Podstawowa składnia podzapytania jest następująca:

SELECT * FROM table1 WHERE columnA = (SELECT kolumna B FROM table2) GO

Podzapytania powinny składać się z instrukcji „SELECT”, „INSERT”, „UPDATE”, „DELETE”, „SET” lub „DO” i nie można jednocześnie zmieniać tabeli i używać jej w podzapytaniu. Podzapytania są zwykle używane po prawej stronie klauzuli WHERE, która może zawierać dowolny operator porównania i operator logiczny, taki jak = (równy), <> (inny), <= (mniejszy lub równy),> = lub „MIĘDZY” (między dwiema wartościami) „NIE”, „ORAZ” i „LUB”. Możesz także użyć słów kluczowych „DISTINCT”, „GROUP BY”, „ORDER BY” i „LIMIT”, a nawet połączyć z instrukcjami „JOIN”. Poza szczegółowymi ograniczeniami, istnieje kilka ograniczeń podczas pisania podkwerend w MySQL.


Nie ma nawet ograniczenia liczby zapytań składanych w zdaniu. Więcej informacji na temat podkwerend można znaleźć w podręczniku MySQL (patrz sekcja „Zasoby”).

Przykład

Załóżmy, że masz dwie tabele: jedną z imieniem i nazwiskiem, adresem i kodem pocztowym członków listy mailingowej, drugą z miastami, stanami i kodem pocztowym. Aby znaleźć nazwiska członków mieszkających w Brasilii, można użyć wielu „wybranych” zdań. Pierwszy będzie szukał CEP w Brasilii:

SELECT FROM FROM codes WHERE state = "BRASILIA" GO

Następnie użyj „wybierz” dla każdego znalezionego kodu pocztowego:

SELECT imię, nazwisko Z adresów WHERE cep = [codecep] GO

Ta metoda jest czasochłonna i łatwa do popełnienia błędów. Łatwo jest zgubić kod pocztowy, zwłaszcza jeśli jest ich zbyt wiele. Łatwiejszym sposobem na wykonanie tego zadania jest użycie pierwszego zdania jako podzapytania w drugim:

SELECT imię, nazwisko FROM adresy WHERE cep = (SELECT cep FROM kody WHERE stan = "BRASILIA") GO


To zapytanie pokaże wszystkich członków twojej listy mailingowej, którzy mieszkają w Brasilii.