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

Объединение многочисленных запросов в один

Вы можете поместить многочисленные запросы вместе и объединить их вывод, используя предложение UNION. Предложение UNION объединяет вывод двух или более SQL запросов в единый набор строк и столбцов. Например, чтобы получить всех продавцов и заказчиков, размещенных в Лондоне и вывести их как единое целое вы могли бы ввести:

SELECT snum, sname FROM Salespeople WHERE city = ' London ' UNION SELECT cnum, cname FROM Customers WHERE city = 'London';

и получить вывод показанный в Рисунке 14.1. Как вы можете видеть, столбцы, выбранные двум командами выведены так как. если она была одна. Заголовки столбца исключены, потому что ни один из столбцов выведенных объединением, не был извлечен непосредственно из только одной таблицы. Следовательно все эти столбцы вывода не имеют никаких имен ( смотрите Главу 7 , в которой обсуждается вывод столбцов ). Кроме того обратите внимание, что только последний запрос заканчивается точкой с запятой. Отсутствие точки с запятой дает понять SQL , что имеется еще одно или более запросов.

SQL Execution Log

SELECT snum, sname FROM Salespeople WHERE city = ' London ' UNION

SELECT cnum, cname FROM Customers WHERE city = ' London ';

1001 Peel
1004 Motika
2001 Hoffman
2006 Climens

Рисунок 14.1: Формирование объединения из двух запросов