Subqueries, vagy egymásba ágyazott lekérdezések mysql
Beágyazott lekérdezések kéri, hogy belül található más lekérdezések, például SELECT, INSERT, UPDATE vagy DELETE. Különben is, a MySQL subqueries lehet belsejében található egyéb subqueries.
Szemléltető példaként, nézzük meg az alábbi beágyazott lekérdezés, amely visszaadja a munkavállalók található irodái az Egyesült Államokban.
- allekérdezés minden irodai kódok iroda található, az amerikai
- A külső lekérdezés kiválasztja az utolsó és első neve a munkavállaló, akinek a hivatali kód van a visszaadott találatok az segédlekérdezés.
Használhatja segédlekérdezésként bárhol egy kifejezést, és meg kell zárójelbe téve.
MySQL segédlekérdezés az állapot, amikor
Allekérdezés az összehasonlító operátorok
Használhatja a összehasonlító operátorok =,>, <и т.д. чтобы сравнить одно значение возвращенное подзапросом с выражением в условии WHERE. Например, следующий запрос вернет пользователя с максимальным платежом из таблицы payments.
Most nézzük meg, a felhasználók, akiknek a kifizetések több mint az átlagos fizetés a segédlekérdezés.
Először használjuk segédlekérdezésként számolni az átlagos fizetési használatával összesítő függvény AVG. Ezután a külső lekérdezés, kérni fogjuk fizetések nagyobb, mint az átlagos fizetési által visszaadott segédlekérdezésként.
Az eredmény az lesz
Beágyazott lekérdezés szereplők, és nincs-
Ha a allekérdezés egynél több értéket, akkor az IN és nem a szolgáltatók a WHERE feltétel.
Nézd meg az alábbi táblázatban.
Nézzük a NOT IN operátor, azt találjuk, akik nem rendelt bármely termék.
Most ez az eredmény
Allekérdezés EXISTS ÉS NEM létezik
Amikor a használt segédlekérdezésként vagy üzemeltetői EXISTS NEM létezik olyan, hogy allekérdezés logikai értéket: IGAZ vagy HAMIS. Ebben az esetben úgy viselkedik, mint egy beágyazott lekérdezés fennállásának ellenőrzése.
A következő példában, akkor válassza ki a felhasználók listáját, akik rendelkeznek legalább egy megrendelés teljes értékesítésének több mint 10.000.
Először is létre fog hozni egy lekérdezést, amely ellenőrzi, hogy van-e legalább egy nagyságrenddel teljes értékesítésének több mint 10.000.
Vissza fog térni hozzánk itt az eredménye,
Visszavitele iránti kérelmet a 6. sorban az eredmények szorzata az oszlopok csak kap egy igaz-hamis választ, vegyünk segédlekérdezésként:
az eredmény, így most
Allekérdezés MySQL nyújtott FROM
Amikor használja beágyazott a FROM záradék a lekérdezés, az eredmény által visszaadott segédlekérdezés egy táblázat, amely az úgynevezett származékos.
Az alábbi lekérdezés megkeresi a maximális, minimális és átlagos számát tételek sorrendjében
Az eredmény az lesz a következő
Felhívjuk figyelmét, hogy al-lekérdezés eredményeként sor, amely a használt származtatott táblázat a külső lekérdezés.