Страница 8. Оператор SELECT для выборки из нескольких таблиц
Назад<<< | Содержание | Вперёд>>> |
С добавлением минимума средств с помощью оператора SELECT можно получать выборки из двух и более таблиц.
Это может быть сделано двумя способами. Первый - перечисление нужных таблиц в секции FROM и задание равенства значений ключей. Второй - использование подзапросов с оператором IN.
Работаем с базой данных "Недвижимость". Скрипт для создания этой базы данных, её таблиц и заполения таблиц данными - в файле по этой ссылке.
Таблицы Client, Manager и Owner содержат данные соответственно о клиентах, менеджерах фирмы и собственниках объектов недвижимости. В этих таблицах FName и LName соответственно имя и фамилия. Таблица Object содержит данные об объектах. В этой таблице нам понадобятся значения столбцов Project (содержит данные о проекте здания или квартиры) и Space_Total (содержит данные об общей площади объекта). Таблица Deal содержит данные о сделках.

Если вы хотите выполнить запросы к базе данных из этого урока на MS SQL Server, но эта СУБД не установлена на вашем компьютере, то ее можно установить, пользуясь инструкцией по этой ссылке.
Пример 1. Составить список собственников, чьи объекты соответствуют проекту "хрущевка".
Задействованы две таблицы - Owner и Object. Соединение происходит по общему ключу - Owner_ID, который для таблицы Owner является первичным ключом, а для таблицы Object - внешним.
Запрос для выполнения этого задания должен быть таким (если выполняется на MS SQL Server, то с предваряющей конструкцией USE realestate;):
Аналогичный результат можно получить с использованием подзапросов.
Пример 2. Составить список собственников, чьи объекты соответствуют проекту "хрущевка".
Способ с подзапросом предусматривает, что значения первичного ключа Owner_ID таблицы Owner (внешний запрос) при помощи секции IN проходят проверку на соответствие элементам множества вторичного ключа Owner_ID таблицы Object (вложенный запрос).
Запрос для выполнения этого задания должен быть таким (если выполняется на MS SQL Server, то с предваряющей конструкцией USE realestate;):
Те же способы используются для получения выборок из более чем двух таблиц.
Пример 3. Вывести список клиентов по сделкам с объектами, имеющими общую площадь больше 50 кв.м.
Запрос для выполнения этого задания должен быть таким (если выполняется на MS SQL Server, то с предваряющей конструкцией USE realestate;):
Как и в примерах с двумя таблицами, аналогичный результат можно получить с использованием подзапросов.
Пример 4. Вывести список клиентов по сделкам с объектами, имеющими общую площадь больше 50 кв.м.
Запрос для выполнения этого задания должен быть таким (если выполняется на MS SQL Server, то с предваряющей конструкцией USE realestate;):
Действия для получения выборок из нескольких таблиц называются соединениями таблиц. В более сложных случаях и для составления более сложных запросов целесообразно использовать для соединения таблиц оператор JOIN.
Назад<<< | Содержание | Вперёд>>> |
Поделиться с друзьями