SQL Урок 6. Объединение запросов

SQL   1 апреля 2012  Автор статьи:  

Оператор UNION служит для объединения нескольких запросов в один. Таким образом результирующие записи помещаются в одну таблицу, где сначала будут идти результаты первого запроса, затем второго и так далее. Рассмотрим синтаксис оператора UNION:

запрос1 UNION [ALL] запрос2

Если используется модификатор ALL, то в результирующем наборе могут встретятся одинаковые записи, если же его не использовать все записи будут уникальными. С помощью оператора UNION можно связать любое количество запросов, но для этого должны выполняться следующие требования:

  1. Наборы должны иметь приводимые типы в соответствующих столбцах


SELECT ID FROM Student
UNION
SELECT ID FROM StudentGroup

Конечно чаще всего данная операция применяется, если нужно собрать однородную информацию из разных таблиц. Допустим, если бы у нас было дополнительное поле тип студента, то тогда каждому типу студента соответствовала своя таблица в которой были похожие и отличающиеся поля, мы смогли бы свести информацию из всех таблиц с помощью UNION.
Если UNION является объединением запросов, то для пересечения запросов или получения разности запросов необходимо использовать INTERSECT и EXCEPT. Давайте выведем всех студентов, которые учатся на бюджете:

SELECT GroupID FROM Student
INTERSECT
SELECT ID AS GroupID StudentGroup WHERE (commerce=true)

Для получения всех студентов, которые учатся на коммерции:

SELECT GroupID FROM Student
EXCEPT
SELECT ID AS GroupID StudentGroup WHERE (commerce=true)

Научиться программировать

  • на Delphi

  • на Java

  • на C++