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

Subqueries, vagy egymásba ágyazott lekérdezések mysql

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.

Subqueries, vagy egymásba ágyazott lekérdezések mysql

Nézzük a NOT IN operátor, azt találjuk, akik nem rendelt bármely termék.

Most ez az eredmény

Subqueries, vagy egymásba ágyazott lekérdezések mysql

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,

Subqueries, vagy egymásba ágyazott lekérdezések mysql

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

Subqueries, vagy egymásba ágyazott lekérdezések mysql

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.