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

Объединение более двух таблиц

Вы можете также создавать запросы, объединяющие более двух таблиц. Предположим, что мы хотим найти все порядки заказчиков, не находящихся в тех городах где находятся их продавцы. Для этого необходимо связать все три наши типовые таблицы ( вывод показывается в Рисунке 8.4 ):

SELECT onum, cname, Orders.cnum, Orders.snum FROM Salespeople, Customers,Orders WHERE Customers.city < > Salespeople.city AND Orders.cnum = Customers.cnum AND Orders.snum = Salespeople.snum;

SQL Execution Log

SELECT onum, cname, Orders.cnum, Orders.snum FROM Salespeople, Customers, Orders

WHERE Customers.city < > Salespeople.city

AND Orders.cnum = Customers.cnum

AND Orders.snum = Salespeople.snum;

onum cname cnum snum
3001 Cisneros 2008 1007
3002 Pereira 2007 1004
3006 Cisneros 2008 1007
3009 Giovanni 2002 1003
3007 Grass 2004 1002
3010 Grass 2004 1002

Рисунок 8. 4: Объединение трех таблиц

Хотя эта команда выглядит скорее как комплексная, вы можете следовать за логикой, просто проверяя - что заказчики не размещены в тех городах, где размещены их продавцы ( совпадение двух snum полей ), и что перечисленные порядки - выполнены с помощью этих заказчиков( совпадение порядков с полями cnum и snum в таблице Порядков ).