Простой запрос с соединением

Если требуется получить данные из более чем одной таблицы базы данных, используется операция соединения, определенная в реляционной алгебре. Строки одной таблицы соединяются со строками другой согласно общим значениям в соответствующих столбцах – столбцах первичных и внешних ключей.

Синтаксис простого запроса с соединением.

SELECT таблица.столбец, таблица.столбец

FROM таблица1, таблица2

WHERE таблица1.столбец1 = таблица2.столбец2;

где: таблица.столбец - таблица и столбец, из которых производится выборка данных;

таблица1.столбец1=таблица2.столбец2 - условие, соединяющее таблицы (или задающее их связь).

Эквисоединение.

Этот вид соединения возникает, когда в качестве условия для соединения указывается точное равенство значений одного столбца значениям другого. Часто эти столбцы являются компонентами первичного и внешнего ключа.

Пример 1: Соединение таблиц служащих и отделов для вывода фамилии служащего, номера и названия отдела.

SELECT Emp.fam_cotr, Emp.id_otdel, Sveden.name_otdel

FROM Emp, Sveden

WHERE Emp.id_otdel = Sveden.id_otdel;

Строки двух таблиц комбинируются и в результат включаются лишь те строки, у которых значения Emp.id_otdel и Sveden.id_otdel равны.

Псевдонимы таблиц.

Для различения одноименных столбцов из разных таблиц используются префиксы в виде имен таблиц. Использование префиксов в виде имен таблиц увеличивает производительность запроса. Одноименные столбцы из разных таблиц можно различать по их псевдонимам. Для разрешения ситуации, когда имена таблиц громоздки или совпадают, также используют псевдонимы таблиц.

Пример 2: Вывод наименования клиента, номера региона и названия региона для всех клиентов. Используются псевдонимы столбцов, а для упрощения ссылок на таблицы – псевдонимы таблиц.

SELECT K. name “Наимен клиента”, R.id_region “Номер региона”, R. name “Назван региона”

FROM klienti K, region R

WHERE R.id_region = K.id_region;

Дополнительные условия поиска.

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

Пример 3: Вывод номера отдела и названия отдела сотрудника, в котором работает Кошкина Н.

SELECT E.fam_cotr, E.id_otdel, S.name_otdel


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: