SQL UNION-запрос возвращает первую строку с именами столбцов - PullRequest
0 голосов
/ 19 марта 2020

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

enter image description here

Что я делаю не так? Если я не делаю статические имена строк в моей первой части, я получаю ошибку с другим числом столбцов. Это мой запрос:

SELECT "id"
     , "place_id"
     , [...]
     , (SELECT Count(pl.payment_method = 'PREPAID_CREDIT' )) AS prepaid_transactions
     , [...]
UNION
SELECT ps.id AS id
     , p.id AS place_id
     , [...]

Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Если в вашем первом запросе нет значений для столбцов, которые вы объявили как строки, вы можете вместо этого использовать NULL. например;

SELECT NULL AS id
     , NULL AS place_id
     , [...]
     , (SELECT Count(pl.payment_method = 'PREPAID_CREDIT' )) AS prepaid_transactions
     , [...]
UNION
SELECT ps.id AS id
     , p.id AS place_id
     , [...]

и так далее. Все, что вам действительно нужно беспокоиться, это то, что обе стороны UNION имеют одинаковое количество столбцов (и что данные в каждом столбце совпадают).

1 голос
/ 19 марта 2020

Вы выбираете строки:

SELECT "id", "place_id", "client_id",...

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

SELECT ps.id, p.place_id, p.client_id,...
...