Эта особенность часто используется просто для эксплуатации связей встроенных в базу данных. В предыдущем примере, мы установили связь между двумя таблицами в объединении. Это прекрасно. Но эти таблицы уже были соединены через поле snum. Эта связь называется состоянием справочной целостности, как мы уже говорили в Главе 1. Используя объединение, можно извлекать данные в терминах этой связи. Например, чтобы показать имена всех заказчиков соответствующих продавцам, которые их обслуживают, мы будем использовать такой запрос:
SELECT Customers.cname, Salespeople.sname
FROM Customers, Salespeople
WHERE Salespeople.snum = Customers.snum;
Вывод этого запроса показывается в Рисунке 8.2.
=============== SQL Execution Log ============
| SELECT Customers.cname, Salespeople.sname, |
| FROM Salespeople, Customers |
| WHERE Salespeople.snum = Customers.snum |
| ============================================= |
| cname sname |
| ------- -------- |
| Hoffman Peel |
| Giovanni Axelrod |
| Liu Serres |
| Grass Serres |
| Clemens Peel |
| Cisneros Rifkin |
| Pereira Motika |
===============================================
Рисунок 8.2. Объединение продавцов с их заказчиками.
Это — пример объединения, в котором столбцы используются для определения предиката запроса, и в этом случае, столбцы snum из обеих таблиц удалены из вывода. И это прекрасно.
Вывод показывает, какие заказчики какими продавцами обслуживаются; значения поля snum, которые устанавливают связь — отсутствуют. Однако если вы укажете их в вывод, то вы должны или удостовериться, что вывод понятен сам по себе или обеспечить комментарий к данным при выводе.