Книга: Обработка баз данных на Visual Basic®.NET
Подзапросы
Подзапросы
Подзапрос (subquery) — это запрос, результат которого служит критерием для другого запроса. Подзапросы занимают место обычного выражения WHERE. Поскольку результат, сгенерированный подзапросом, используется вместо выражения, подзапрос может возвращать только одиночное значение (в противоположность обычному запросу, который возвращает несколько значений, представленных в виде строк и столбцов).
Единственное синтаксическое различие между подзапросом и выражением любого другого типа, размещенным в предложении WHERE, состоит в том, что подзапрос должен быть заключен в круглые скобки. Например, нужно создать запрос, который отображает заказы с самыми дорогими товарами. Дорогим считается такой товар, стоимость которого превышает среднюю стоимость товаров в таблице tblItem. Поскольку среднюю стоимость товара легко определить (выполнив итоговую функцию AVG по полю UnitPrice в таблице tblItem), это значение можно использовать как подзапрос в более крупном запросе. Такой запрос SQL приведен ниже.
SELECT Name, UnitPrice
FROM tblItem
WHERE (UnitPrice > (SELECT AVG(UnitPrice) FROM tblItem)
В этом случае оказывается, что запрос и подзапрос обращаются к одной и той же таблице, но это не принципиально. Подзапросы могут делать запросы к любой таблице в базе данных, главное – чтобы они возвращали одиночное значение.
Приведенная выше инструкция SQL возвращает следующий результирующий набор:
Name | UnitPrice |
---|---|
Rubber Chicken | 5.99 |
Disappearing Penny Magic Trick | 3.99 |
Loaded Dice | 3.49 |
Whoopee Cushion | 5.99 |
- Что такое запрос
- Тестирование запросов с помощью компонента Server Explorer
- Отбор записей с помощью предложения SELECT
- Указание источника записей с помощью предложения FROM
- Формирование критериев с использованием предложения WHERE
- Сортировка результатов с помощью предложения ORDER BY
- Отображение первых или последних записей диапазона с помощью предложения ТОР
- Объединение связанных таблиц в запросе
- Выполнение вычислений в запросах
- Определение псевдонимов с использованием предложения AS
- Запросы, которые группируют данные и подводят итоги
- Запросы на объединение
- Подзапросы
- Манипулирование данными с помощью SQL
- Использование языка определения данных
- Резюме
- Вопросы и ответы