Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

Объединение таблиц через справочную целостность

Эта особенность часто используется просто для эксплуатации связей, встроенных в базу данных. В предыдущем примере мы установили связь между двум таблицами в объединении. Это прекрасно. Но эти таблицы, уже были соединены через snum поле. Эта связь называется состоянием справочной целостности, как мы уже говорили в Главе 1. Используя объединение, можно извлекать данные в терминах этой связи. Например, чтобы показать имена всех заказчиков соответст- вующих продавцам которые их обслуживают, мы будем использовать такой запрос:

SELECT Customers.cname, Salespeople.sname FROM Customers, Salespeople WHERE Salespeople.snum = Customers.snum;

Вывод этого запроса показывается в Рисунке 8.2.

Это - пример объединения, в котором столбцы используются для определения предиката запроса, и в этом случае, snum столбцы из обеих таблиц, удалены из вывода. И это прекрасно. Вывод показывает какие заказчики каким продавцом обслуживаются; значения поля snum которые устанавливают связь - отсутствуют. Однако если вы введете их в вывод, то вы должны или удостовериться что вывод понятен сам по себе или обеспечить комментарий к данным при выводе.

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: Объединение продавцов с их заказчикам