Výučba MySQL Subquery

Autor: Morris Wright
Dátum Stvorenia: 25 Apríl 2021
Dátum Aktualizácie: 1 V Júli 2024
Anonim
Výučba MySQL Subquery - Články
Výučba MySQL Subquery - Články

Obsah

Poddotky sú dotazy vnorené do iného. Umožňujú vám oddeliť časť vety a poskytnúť čitateľnejšiu alternatívu k operáciám, ktoré môžu vyžadovať komplexné spojenia a odbory. Poddotky v MySQL môžu vrátiť hodnotu, riadok, stĺpec alebo tabuľku údajov.


Na vytvorenie čitateľnejších a kompaktnejších viet použite poddotazy (Obrázky Thinkstock / Comstock / Getty Images)

Syntax

Základná syntax poddotazu je nasledovná:

SELECT * FROM table1 WHEE columnA = (VYBRAŤ stĺpec B Z tabuľky2) GO

Poddotky by sa mali skladať z príkazu "SELECT", "INSERT", "UPDATE", "DELETE", "SET" alebo "DO" a tabuľku nemôžete meniť a používať v rámci poddotazu naraz. Poddotazy sa zvyčajne používajú na pravej strane klauzuly WHERE, ktorá môže obsahovať ktorýkoľvek z porovnávacích a logických operátorov, ako napríklad = (rovný), <> (odlišný), <= (menší alebo rovný),> = alebo "BETWEEN" (medzi dvoma hodnotami), "NOT", "AND" a "OR". Môžete tiež použiť kľúčové slová „DISTINCT“, „GROUP BY“, „ORDER BY“ a „LIMIT“ a dokonca kombinovať s príkazmi „JOIN“. Okrem podrobných obmedzení je pri písaní poddotkov v MySQL málo obmedzení.


Neexistuje ani obmedzenie počtu poddotkov uskutočnených v rámci vety. Viac informácií o poddotazoch nájdete v referenčnom manuáli MySQL (pozrite časť "Zdroje").

príklad

Predpokladajme, že máte dve tabuľky: jednu s priezviskom a priezviskom, adresu a poštové smerovacie číslo členov zoznamu adries a jedno s mestami, štátmi a PSČ. Na nájdenie mien členov žijúcich v Brazílii je možné použiť viacero „vybraných“ viet. Prvý z nich bude hľadať CEP Brasília:

VYBERTE Z OD KÓDOV WHERE state = "BRASILIA" GO

Potom použite „select“ pre každé nájdené PSČ:

SELECT meno, priezvisko FROM adresy WHERE cep = [codecep] GO

Táto metóda je časovo náročná a ľahko sa robí chyby. Je ľahké stratiť poštové smerovacie číslo, najmä ak je ich príliš veľa. Jednoduchšia cesta na dokončenie tejto úlohy je použiť prvú vetu ako poddotaz v rámci druhej:


SELECT meno, priezvisko FROM adresy WHERE cep = (SELECT cep FROM kódy WHERE state = "BRASILIA") GO

Tento dotaz zobrazí všetkým členom vášho mailing listu, ktorí žijú v Brazílii.