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

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

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

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

  1. Наборы должны иметь приводимые типы в соответствующих столбцах
1
2
3
SELECT ID FROM Student
UNION
SELECT ID FROM StudentGroup

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

1
2
3
SELECT GroupID  FROM Student
INTERSECT
SELECT ID AS GroupID StudentGroup WHERE (commerce=TRUE)

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

1
2
3
SELECT GroupID  FROM Student
EXCEPT
SELECT ID AS GroupID StudentGroup WHERE (commerce=TRUE)

Категория: MySQL | Добавил: ghost_mod (29.09.2016)
Просмотров: 451 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: