Тази група включва подзаявки започващи с В, а не в или ключова дума сравнение оператор някои или всички.
Подзаявки започващи с В, а не в
Резултатът от подзаявка като се започне с ключова дума в, а не в списък, съдържащ нула или повече стойности. След завръщането на подзаявка, външен старт обработката на заявката.
В списъка за избор на вътрешния подзаявка може да включва само един израз или име на колона.
Колоната ли да посочите в клаузата WHERE на външния отчета трябва да са съвместими за сравнение с колоната ли да посочите в списъка за избор подзаявка.
Получаване на списък с клиенти от Сиатъл, подписаха договор за отдаване под наем на оборудване (оборудване под наем).
SQL:
SELECT фамилия, име, регион
ОТ tbl_clients
КЪДЕ област = 'Сиатъл "И CLIENT_ID ПО (
SELECT client_id
ОТ tbl_contract
JOIN tbl_service ON tbl_contract.service_id = tbl_service.service_id
КЪДЕ обслужване = 'оборудване под наем ")
Обърнете внимание на допустимостта на сдружаване и на няколко условия в клаузата WHERE като във вътрешната и във външната заявка.
Получите списък с клиенти от Сиатъл, подписаха договор за отдаване под наем на оборудване (например, обратна по-горе).
SQL:
SELECT фамилия, име, регион
ОТ tbl_clients
КЪДЕ област = 'Сиатъл "И CLIENT_ID НЕ ПО (
SELECT client_id
ОТ tbl_contract
JOIN tbl_service ON tbl_contract.service_id = tbl_service`service_id
КЪДЕ обслужване = 'оборудване под наем ")
Подзаявки, като се започне с операторите за сравнение и включват ключови думи ТАКИВА, или ALL
В друг вид подзаявка, че не е върнат или рециклирани няколко линии, използвани за сравнение оператор модифицирана дума някой или всички.
Ако подзаявка ще бъде предшестван от ключовата дума ALL, условието за сравнение е изпълнено само ако притежава всички стойности в резултат от колона подзаявка.
SQL:
SELECT contract_id, contract_date
ОТ tbl_contract
КЪДЕ contract_date> ALL (
SELECT contract_date
ОТ tbl_contract JOIN tbl_service ON tbl_contract.service_id = tbl_service.service_id
КЪДЕ обслужване = 'оборудване под наем ")
изпълнение на заявката се извършва на 2 етапа. Първо, вътрешната заявката избира списък с дати, на които договорите са сключени за отдаване под наем на оборудване. Външното търсене е най-голяма стойност в списъка на датите, както и за всеки договор в tbl_contract маса определя дали не се съдържат в contract_date голяма дата.
По този начин, ние получаваме списък на договорите, сключени след всички договори за отдаване под наем на оборудване.
ALL оператор, като правило, се използва ефективно с неравенството, а не с уравненията, тъй като стойността на "всички сме равни", която трябва да се включи в този случай, тъй като в резултат на подзаявка може да се осъществи само ако всички резултати са идентични.
В отчета за SQL <> Всичко, което наистина не е равна на някоя от резултатите от подзаявка.
Ако текст подзаявка предшествано от ключовата дума, ТАКИВА, условието за сравнение ще бъдат изпълнени, ако е изпълнено поне една (или повече) стойности в резултат от колона подзаявка.
SQL:
SELECT contract_id, contract_date
ОТ КЪДЕ tbl_contract contract_date
ОТ tbl_contract УЧАСТВА tbl_serviceON tbl_contract.service_id = tbl_service.service_id
КЪДЕ обслужване = 'оборудване под наем ")
Горната заявката намира договор, сключен преди първия договор за услуги е сключен.
Ако вътрешният под-заявката, като се започне с всички или някои, връща нулева стойност, се смята, че целият искането не успее. В този случай, те не получават никакви резултати, тъй като е невъзможно да се извърши сравнение със стойност NULL.
Свързани статии