Объединение таблиц
Запросы, которые получают все необходимые им данные из одной таблицы, встречаются достаточно редко. Вряд ли отдельная таблица базы данных будет содержать всю необходимую информацию о конкретном объекте.
Например, таблица tbl_contract содержит только код услуги, а стоимость и название услуги содержится в таблице tbl_service.
С помощью операции объединения в одном операторе SELECT можно манипулировать данными из разных таблиц. Каждое объединение задается для двух таблиц, хотя в одном операторе SELECT может выполняться несколько объединений. При этом столбец, по которому проводится объединение, называется столбцом объединения (join column). Столбцы объединения должны иметь совпадающие или легко сравнимые значения, описывающие одинаковые или сходные данные в объединяемых таблицах. Столбцы объединения обычно должны иметь одинаковый тип данных и быть определены на одном доменеДомен - это допустимое множество значений данного типа Тогда значения в этих столбцах будут совместимыми для объединения (join-compatible), так будут принадлежать к одному общему классу данных. Чаще всего в качестве столбцов объединения используются первичные и внешние ключи.
Например, в нашей базе данных первичный ключ (tbl_service.service_id) объединяется с соответствующим внешним ключами (tbl_contract.service_id).
Для таблицы результатов запроса с использованием объединения справедливы две вещи:
- каждая строка таблицы результатов формируется из пары строк объединяемых таблиц;
- для нахождения данной пары строк производится сравнение содержимого столбцов объединения в этих таблицах.