Как использовать WHERE вместе с UNION?

Когда вы используете оператор UNION для объединения результатов двух или более запросов в один набор данных, вы можете применить оператор WHERE для фильтрации результатов объединения.

Оператор WHERE позволяет задать условие, которое будет проверяться для каждой строки, возвращаемой объединением запросов. Если условие истинно, то строка будет включена в результат, если условие ложно, строка будет исключена из результирующего набора данных.

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

SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2

Вы можете использовать оператор WHERE перед каждым подзапросом, чтобы применить фильтр к каждому запросу перед объединением:

SELECT column1, column2 FROM table1 WHERE condition1
UNION
SELECT column1, column2 FROM table2 WHERE condition2

В этом примере, каждый подзапрос имеет своё условие - condition1 для первого и condition2 для второго подзапроса. Результат объединения запросов будет содержать только те строки, которые удовлетворяют обоим условиям.

Вы также можете использовать оператор WHERE после оператора UNION, чтобы применить фильтр к результату объединения запросов:

SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2
WHERE condition

В этом случае, условие будет применено ко всем данным в результирующем наборе после объединения запросов, и строки, которые не удовлетворяют условию, будут исключены из результата.

Таким образом, используя оператор WHERE в сочетании с оператором UNION, вы можете легко фильтровать и выбирать только нужные данные из объединения запросов.