Вы можете также создавать запросы, объединяющие более двух таблиц. Предположим, что мы хотим найти все порядки заказчиков, не находящихся в тех городах где находятся их продавцы. Для этого необходимо связать все три наши типовые таблицы ( вывод показывается в Рисунке 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 в таблице Порядков ).
‹ Объединения таблиц по равенству значений в столбцах и другие виды объединений
Вверх
Резюме 8 ›