Некоррелированная обработка

В приведенном ниже примере представлен подзапрос, начинающийся с IN и возвращающий список клиентов, имеющих высшее (High school degree) и незаконченное высшее образование (Did not complete high school).

SQL:
SELECT lastname, name FROM tbl_clients
WHERE ed_code IN(
SELECT ed_code
FROM tbl_educ
WHERE educ ='Did not complete high school' OR educ ='High school degree')

С концептуальной точки зрения внешний запрос и некоррелированный подзапрос (или внутренний запрос) реализуются за два шага. Сначала внутренний запрос возвращает коды, соответсвующие высшему и незаконченному высшему образованию из таблицы tbl_educ (2 и 3):

SQL:
SELECT ed_code
FROM tbl_educ
WHERE educ ='Did not complete high school' OR educ ='High school degree'

Затем эти значения передаются во внешний запрос, который отыскивает имена и фамилии клиентов, имеющих соответствующие значения в поле ed_code таблицы tbl_clients:

SQL:
SELECT lastname, name
FROM tbl_clients
WHERE ed_code IN (1, 2)

Принадлежность столбцов в подзапросах таблицам неявно задается в их предложениях FROM. Это означает, что столбец в предложении WHERE внешнего запроса принадлежит таблице из предложения FROM внешнего запроса — т.е. таблице tbl_clients. Столбец ed_code в списке выбора подзапроса принадлежит таблице, указанной в предложении FROM этого подзапроса — т.е. таблице tbl_educ.