Subinterogarilor, sau interogări imbricate în MySQL
interogări imbricate sunt cereri care sunt localizate în alte interogări, cum ar fi SELECT, INSERT, UPDATE sau DELETE. În plus, subinterogările MySQL pot fi amplasate în interiorul altor subinterogări.
Ca un exemplu ilustrativ, să ne uităm la următoarea interogare imbricată care returnează angajați în birourile din Statele Unite ale Americii.
- returnează subinterogarea toate codurile de birou birouri situate în SUA
- Interogarea exterior selectează numele și prenumele angajatului al cărui cod de birou este în rezultatele returnate de interogarea secundară.
Puteți utiliza o subinterogare oriunde într-o expresie și trebuie să fie închise în paranteze.
MySQL subinterogare în stare UNDE
Subinterogare cu operatori de comparare
Puteți utiliza Comparatorii =,>, <и т.д. чтобы сравнить одно значение возвращенное подзапросом с выражением в условии WHERE. Например, следующий запрос вернет пользователя с максимальным платежом из таблицы payments.
Acum, să găsească utilizatori ale căror plăți sunt mai mult decât plata medie în interogarea secundară.
În primul rând, vom folosi o subinterogare pentru a conta plata medie folosind AVG funcția agregată. Apoi, în interogarea de exterior, vom cere plăți care sunt mai mari decât plata medie este returnat de o subinterogare.
Rezultatul va fi
Operatorii de interogare imbricate IN și nu în
În cazul în care returnează mai mult interogarea secundară de o valoare, puteți utiliza și dacă nu în operatori, în situația în care.
Uită-te la tabelul de mai jos.
Să nu utilizați operatorul, vom găsi oameni care nu au comandat niciun produs.
Acum vom obține acest rezultat
Subinterogare cu SI NU EXISTĂ EXISTS
Atunci când este utilizat cu o subinterogare sau operatori EXISTS NU există, astfel că un subinterogare returnează o valoare booleană: TRUE sau FALSE. În acest caz, acționează ca o interogare imbricate verificarea existenței.
În exemplul următor, vom selecta o listă de utilizatori care au cel puțin o comandă cu vânzările totale de mai mult de 10.000.
În primul rând, vom crea o interogare care va verifica dacă există cel puțin o comandă cu vânzări totale de peste 10.000.
El se va întoarce la noi aici, este un rezultat al
Cerere de întoarcere 6 rânduri cu rezultatele de multiplicare a coloanelor pentru a obține doar un răspuns adevărat-FALS, să utilizăm un subinterogare:
rezultatul este acum atât de
Subinterogare MySQL furnizate în DIN
Când utilizați imbricată în clauza FROM a unei interogări, rezultatul returnat de acest subinterogare este un tabel, care se numește un derivat.
Următoarea interogare găsește maxim, minim și numărul mediu de articole în ordinea
Rezultatul va fi următorul
Vă rugăm să rețineți că sub-interogare returnează un set de rezultate, care este folosit ca un tabel derivat pentru interogarea exterioară.