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.