awilum.ru
Статьи Курсы Об авторе

Объединение запросов

Курсы / SQL Базовый уровень / Основы

UNION в SQL используется для объединения двух или более запросов оператора SELECT.

Таблица movies

id title release_year genre rating
1 The Shawshank Redemption 1994 Drama 9
2 The Godfather 1972 Crime 9
3 The Godfather: Part II 1974 Crime 9
4 The Dark Knight 2008 Action 9
5 12 Angry Men 1957 Drama 8
6 Schindlers List 1993 Biography 8
7 Pulp Fiction 1994 Crime 8
8 The Lord of the Rings: The Return of the King 2003 Adventure 8
9 Fight Club 1999 Drama 8
10 The Good, the Bad and the Ugly 1966 Western 8


Оператор SQL UNION имеет следующий синтаксис:

SELECT column1,
	  column2,
	  ...
  FROM table_name_1
 UNION
SELECT column1,
	   column2,
	   ...
  FROM table_name_2

Важно отметить, что каждый из операторов SELECT должен иметь в своем запросе одинаковое количество столбцов и типы возвращаемых данных, иначе произойдет ошибка при формировании результирующей таблицы.



Например, если вы хотите получить список всех фильмов и их жанров из таблицы movies, вы можете использовать следующий запрос:

SELECT title,
	   genre
  FROM movies
 UNION
SELECT title,
   	   genre
  FROM movies;

Этот запрос вернет список всех фильмов и их жанров, исключая дубликаты.



Еще один пример, если вы хотите соединить две таблицы с разными названиями и получить список всех фильмов и их жанров из обеих таблиц, вы можете использовать следующий запрос:

SELECT title,
   	   genre
  FROM movies
 UNION
SELECT title,
	   genre
  FROM top_rated_movies;

Этот запрос объединит результаты из двух таблиц и вернет список всех фильмов и их жанров из обеих таблиц без дубликатов.



Еще одна важная особенность UNION он делает автоматический DISTINCT (уникальные записи), то есть он не возвращает дублирующиеся записи. Если вы хотите включить дубликаты в результат, используйте UNION ALL.

Подзапросы Представление
Записаться на курс