MySQL Subquery Tutorial

Szerző: Roger Morrison
A Teremtés Dátuma: 4 Szeptember 2021
Frissítés Dátuma: 1 Július 2024
Anonim
Subquery In SQL | SQL Subquery Tutorial With Examples | SQL Tutorial For Beginners | Simplilearn
Videó: Subquery In SQL | SQL Subquery Tutorial With Examples | SQL Tutorial For Beginners | Simplilearn

Tartalom

A lekérdezések egy másikba beágyazott lekérdezések. Lehetővé teszik, hogy elkülönítsük a mondat egy részét, és olvashatóbb alternatívát adjunk azoknak a műveleteknek, amelyek komplex csatlakozásokat és szakszervezeteket igényelhetnek. A MySQL-ben található Subqueries értékek, sorok, oszlopok vagy adattáblák adhatók vissza.


Subqueries segítségével olvashatóbb és kompaktabb mondatokat hozhat létre (Thinkstock Images / Comstock / Getty Images)

A szintaxis

Az al-kérelem alapvető szintaxisa a következő:

SELECT * FROM table1 WHERE oszlopA = (SELECT oszlopB FROM Table2) GO

A lekérdezéseknek a "SELECT", "INSERT", "UPDATE", "DELETE", "SET" vagy "DO" utasításokból kell állniuk, és nem módosíthatja a táblázatot és használhatja azt egyidejűleg az alprogramban. A lekérdezéseket általában a WHERE záradék jobb oldalán használják, amelyek az összehasonlítás és a logikai operátorok bármelyikét tartalmazhatják, például = (egyenlő), <> (különböző), <= (kisebb vagy egyenlő),> = vagy "BETWEEN" (két érték között), "NOT", "AND" és "OR". Használhatja a "DISTINCT", "GROUP BY", "ORDER BY" és "LIMIT" kulcsszavakat, és még a "JOIN" utasításokkal kombinálhatja. A részletes korlátozásokon kívül a MySQL-ben a subqueries írásakor kevés korlátozás van.


Egy mondaton belül még nincs korlátozás az alanyok számára. Az alikérdésekről további információkat talál a MySQL referencia kézikönyvben (lásd az "Erőforrások" részt).

példa

Tegyük fel, hogy két asztalod van: az egyik a levelezőlista tagjainak első és utónevével, címével és irányítószámával, a másik pedig a városokkal, államokkal és irányítószámokkal. Ahhoz, hogy megtaláljuk a Brasíliában élő tagok nevét, több "szelekciós" mondatot lehet használni. Az első a braziliai CEP-eket fogja keresni:

KIVÁLASZTÁS KÓDOKBÓL KI állapot = "BRASILIA" GO

Ezután használjon egy "kiválasztott" -t minden egyes azonosított irányítószámhoz:


KIVÁLASZTÁS nevét, vezetéknevet FROM címek WHERE cep = [codecep] GO

Ez a módszer időigényes és könnyen hibázható. Könnyű elveszíteni egy irányítószámot, különösen, ha túl sok van. A feladat végrehajtásának egyszerűbb módja, hogy az első mondatot másodlagos kérésként használjuk a második:

KIVÁLASZTÁS neve, vezetéknév a címekből WHERE cep = (SELECT cep FROM kódok WHERE állapot = "BRASILIA") GO

Ez a lekérdezés megmutatja a levelezőlista összes tagját, aki Brasíliában él.