Теоретически не существует верхней границы на количество таблиц, которые могут быть соединены с использованием оператора 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 условий соединения и совершенно другие (безусловно, допустимые) условия соединения для дальнейшего сокращения результирующего набора данных.