Основы языка TRANSACT SQL. Казакова И.А. - 81 стр.

UptoLike

Составители: 

80
Пример 62. Найти номер группы, в которой куратор препо-
даватель Мещеряков Б. К.:
SELECT Name_group AS Название группы
FROM Groups
WHERE Kurator=(SELECT ID_Teacher
FROM Teachers
WHERE Familia=’Мещеряков’);
Результат выполнения запроса приведен на рис. 29.
Рис. 29. SELECT со связанным подзапросом
Порядок выполнения оператора SELECT со связанным подза-
просом:
1. Выбирается строка из таблицы, имя которой указано во
внешнем запросе.
2. Выполняется подзапрос и полученное значение применяет-
ся для анализа этой строки в условии предложения WHERE внеш-
него запроса.
3. По результату оценки этого условия принимается решение о
включении или невключении строки в состав выходных данных.
4. Процедура повторяется для следующей строки таблицы
внешнего запроса.
Следует обратить внимание, что приведенный выше запрос
корректен только в том случае, если в результате выполнения ука-
занного в скобках подзапроса возвращается единственное значение.
Если в результате выполнения подзапроса будет возвращено не-
сколько значений, то этот подзапрос будет ошибочным. В данном
примере это произойдет, если в таблице Groups будет несколько за-
писей со значениями поля Familia = ’Мещеряков’.
10.2.2. Подзапросы,
возвращающие множество значений
Во многих случаях значение, подлежащее сравнению в пред-
ложениях WHERE или HAVING, представляет собой не одно, а не-
сколько значений. Вложенные подзапросы генерируют непоимено-
     Пример 62. Найти номер группы, в которой куратор – препо-
даватель Мещеряков Б. К.:
     SELECT Name_group AS Название группы
     FROM Groups
     WHERE Kurator=(SELECT ID_Teacher
                    FROM Teachers
                    WHERE Familia=’Мещеряков’);
     Результат выполнения запроса приведен на рис. 29.




             Рис. 29. SELECT со связанным подзапросом

     Порядок выполнения оператора SELECT со связанным подза-
просом:
     1. Выбирается строка из таблицы, имя которой указано во
внешнем запросе.
     2. Выполняется подзапрос и полученное значение применяет-
ся для анализа этой строки в условии предложения WHERE внеш-
него запроса.
     3. По результату оценки этого условия принимается решение о
включении или невключении строки в состав выходных данных.
     4. Процедура повторяется для следующей строки таблицы
внешнего запроса.
     Следует обратить внимание, что приведенный выше запрос
корректен только в том случае, если в результате выполнения ука-
занного в скобках подзапроса возвращается единственное значение.
Если в результате выполнения подзапроса будет возвращено не-
сколько значений, то этот подзапрос будет ошибочным. В данном
примере это произойдет, если в таблице Groups будет несколько за-
писей со значениями поля Familia = ’Мещеряков’.

                   10.2.2. Подзапросы,
            возвращающие множество значений
     Во многих случаях значение, подлежащее сравнению в пред-
ложениях WHERE или HAVING, представляет собой не одно, а не-
сколько значений. Вложенные подзапросы генерируют непоимено-
                               80