Соединение более чем двух таблиц

Оценить
(0 голоса)

Теоретически не существует верхней границы на количество таблиц, которые могут быть соединены с использованием оператора select. (Одно условие соединения всегда комбинирует две таблицы!) Однако Database Engine имеет реализационные ограничения: максимальное количество таблиц, которые могут быть соединены в операторе select, равно 64.

В примере 6.55 соединяются три таблицы базы данных sample.

 

Соединение более чем двух таблиц

 

Результат примера 6.55 может быть получен лишь в том случае, если вы соединяете как минимум три таблицы: works_on, employee и department. Эти таблицы могут быть соединены с использованием двух пар столбцов соединения:

(works_on.emp_no, employee.emp_no) (employee.dept_no, department.dept_no)

Пример 6.56 использует все четыре таблицы базы данных sample для получения результирующего набора данных.

 

Соединение более чем двух таблиц

 

Соединение более чем двух таблиц

 

Обратите внимание, что при соединении трех таблиц для получения естественного соединения вы используете два условия соединения (каждое связывает две таблицы). Когда вы соединяете четыре таблицы, то используете три таких условия. Вообще, если вы соединяете n таблиц, вам нужно n - 1 условие соединения, чтобы исключить декартово произведение. Разумеется, может понадобиться более чем n - 1 условий соединения и совершенно другие (безусловно, допустимые) условия соединения для дальнейшего сокращения результирующего набора данных.


Декартово произведение
Внешнее соединение
Другие формы операций соединения
Тета-соединение
Самосоединение или соединение таблицы самой с собой

Добавить комментарий


Защитный код
Обновить

© 2018 www.serversql.ru. Все права защищены.