Главная Обратная связь

Дисциплины:






Объединение таблиц в запросах



 

Чтобы понять как действует синтаксис объединения данных из таблиц Table1Students и Table2 – Grup c использованием INNER JOIN добавим в таблицу Students студентов, которые еще не распределены в группы (в поле Grup_ID null, а в таблицу Grup – группы, которых нет в таблице Students .

Использование псевдонимов для имен таблиц. Псевдонимы назначаются таблицам с целью сокращения объема печатания, а также для использования при рекурсивном связывании таблиц.

Рассмотрим особенности применения аргумента JOIN:

 

CROSS JOIN указывает векторное произведение двух таблиц.

LEFT [ OUTER ] указывает, что все строки таблицы слева, которые не соответствуют указанному условию, включаются в результирующий набор в дополнение ко всем строкам, которые возвращаются внутренним объединением. Для выходных столбцов таблицы слева указано значение NULL.

RIGHT [ OUTER ] указывает, что все строки таблицы справа, которые не соответствуют указанному условию, включаются в результирующий набор в дополнение ко всем строкам, которые возвращаются внутренним объединением. Для выходных столбцов таблицы справа указано значение NULL.

JOIN показывает, что указанные таблицы следует объединить.

ON < search_condition > указание условия, на котором основывается объединение. Условие может указать любой допустимый предикат, однако часто используются столбцы и операторы сравнения.

INNER указывает, что все совпадающие пары строк возвращены. Отмена несовпадающих строк из обеих таблиц. Задается по умолчанию, если тип объединения не указан.

Использование INNER JOIN – это наиболее часто используемое в SQL соединение. Оно возвращает пересечение двух множеств. В терминах таблиц, оно возвращает только записи из обеих таблиц, отвечающие указанному критерию. На рисунке 1 показана диаграмма Венна, иллюстрирующая пересечение двух таблиц. Результат операции – закрашенная область. Заметьте, что выдаются только данные из записей, имеющих одинаковые значения Chair_ID в таблицах.


Рисунок 1. INNER JOIN.

 

Следующий пример возвращает имена только тех студентов, кто записан в группы:

SELECT S.Stud_FAM,S.Stud_IMYA, G.GRUP_NAME

FROM StudySchema.Students S

INNER JOIN StudySchema.Grup G

ON S.Grup_ID = G.Grup_ID

ORDER BY G.Grup_NAME

Аналог:

SELECT S.Stud_FAM,S.Stud_IMYA, G.GRUP_NAME

FROM StudySchema.Students S, StudySchema.Grup G

WHERE S.Grup_ID = G.Grup_ID

ORDER BY G. Grup_NAME

Использование FULL JOIN -Полностью это соединение называется FULL OUTER JOIN (зарезервированное слово OUTER необязательно). FULL JOIN работает как объединение двух множеств. На рисунке 2 показана диаграмма Венна для FULL JOIN двух таблиц. Результатом операции опять же является закрашенная область.


Рисунок 2. FULL JOIN.

 

Синтаксис почти такой же, как показанный выше:





sdamzavas.net - 2019 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...