Как объединить 2 запроса в 1 в Postgresql или как изменить запрос ниже?

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

Допустим, у нас есть два запроса:

SELECT name FROM table1;
SELECT name FROM table2;

Чтобы объединить результаты этих запросов и получить один совместный набор результатов, мы можем использовать UNION:

SELECT name FROM table1
UNION
SELECT name FROM table2;

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

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

SELECT name FROM table1
UNION ALL
SELECT name FROM table2;

Вы также можете добавить дополнительные условия и столбцы к каждому запросу, чтобы получить более сложный результат. Например:

SELECT name, age FROM table1
WHERE age > 18
UNION ALL
SELECT name, age FROM table2
WHERE age > 18;

Этот запрос объединяет только те строки, где возраст больше 18, но включает все строки без удаления дубликатов.

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