Подзаявки, или вложени заявки в MySQL

Вложени заявки са исканията, които се намират в рамките на други въпроси, като SELECT, INSERT, UPDATE или DELETE. Освен това, MySQL подзаявки могат да бъдат разположени в други подзаявки.







Като илюстративен пример, нека разгледаме следния вложени заявка, която връща служители, намиращи се в офиса в САЩ.

  • подзаявка връща всички офиси кодове офиси, разположени в САЩ
  • Външният заявката избира последното и първото име на служителя, чийто офис е кода на резултатите, върнати от подзаявка.

Можете да използвате подзаявка навсякъде в израз и той трябва да бъде поставен в скоби.

MySQL подзаявка в състояние, при

Подзаявка с операторите за сравнение

Можете да използвате = сравнителните оператори,>, <и т.д. чтобы сравнить одно значение возвращенное подзапросом с выражением в условии WHERE. Например, следующий запрос вернет пользователя с максимальным платежом из таблицы payments.

Сега нека да намерите потребители, чиито плащания са повече от средното заплащане в подзаявка.

На първо място, ние използваме подзаявка да брои средната плащане с помощта на обобщаваща функция AVG. След това, през външната заявка, ние ще поискаме плащания, които са по-големи от средната плащането се върнат от подзаявка.

Резултатът ще бъде

Подзаявки, или вложени заявки в MySQL

оператори Вложени заявка в, а не в







Ако подзаявка връща повече от една стойност, можете да използвате и да не е в операторите в WHERE състояние.

Вижте таблицата по-долу.

Подзаявки, или вложени заявки в MySQL

Нека не използвате в оператор, намираме хора, които не са подредени всички продукти.

Сега ние се този резултат

Подзаявки, или вложени заявки в MySQL

Подзаявка с съществува и НЕ СЪЩЕСТВУВА

Когато се използва с подзаявка или оператори съществува не съществува, така че подзаявка връща булева стойност: вярно или невярно. В този случай той действа като вложени заявка за проверка на съществуване.

В следващия пример ще изберем списък с потребители, които имат най-малко един ред с общи продажби от повече от 10 хиляди.

На първо място, ние ще създадем заявка, която ще провери дали има най-малко един ред с общи продажби от над 10 000.

Той ще се върне към нас тук е резултат от

Подзаявки, или вложени заявки в MySQL

Заявка за връщане 6 реда с резултатите от умножението на колоните, за да просто да се TRUE-неверните, нека да използваме подзаявка:

резултатът е толкова

Подзаявки, или вложени заявки в MySQL

Подзаявка MySQL, предоставена в ОТ

При използване на вложените в ОТ клауза от заявка, резултатът върнати от този подзаявка е таблица, която се нарича производно.

Следната заявка установи максималната, минималната и средната броя на елементите в реда,

Резултатът ще бъде следното

Моля, имайте предвид, че под-заявка връща резултатен набор, който се използва като производна таблица на външната заявка.