Глава 5. Запрос к нескольким таблицам
| Samantha | Jameson | Operations |
| John | Blake | Operations |
| Cindy | Mason | Operations |
| Frank | Portman | Operations |
| Theresa | Markham | Operations |
| Beth | Fowler | Operations |
| Rick | Tulman | Operations |
| John | Gooding | Loans |
| Michael | Smith | Administration |
| Susan | Barker | Administration |
| Robert | Tyler | Administration |
++++
18 rows in set (0.01 sec)
Этот старый метод описания соединений не включает подблок
on
. Таб
лицы указаны в блоке
from
через запятую, а условия соединения вклю
чены в блок
where
. Хотя можно игнорировать синтаксис SQL92 в поль
зу старого синтаксиса соединений, у синтаксиса ANSI есть следующие
преимущества:
• Условия соединения и фильтрации разнесены в два разных блока
(подблок
on
и блок
where
соответственно), что упрощает понимание
запроса.
• Условия соединения для каждой пары таблиц содержатся в собст
венном блоке
on
, что уменьшает вероятность ошибочного исключе
ния части соединения.
• Запросы, использующие синтаксис соединения SQL92, портируют
ся на разные серверы БД, тогда как старый синтаксис немного от
личается для каждого сервера.
Преимущества синтаксиса соединения SQL92 заметнее в сложных за
просах, включающих как условия соединения, так и условия фильт
рации. Рассмотрим следующий запрос, по которому возвращаются все
счета, открытые опытными операционистами (нанятыми до 2003 го
да), в настоящее время приписанными к отделению Woburn:
mysql>
SELECT a.account_id, a.cust_id, a.open_date, a.product_cd > FROM account a, branch b, employee e > WHERE a.open_emp_id = e.emp_id > AND e.start_date <= '20030101'