SQL UNION 查询 returns 具有列名的第一行

SQL UNION query returns first row with column names

我处于使用 UNION 组合查询的情况。但问题是第一行是重复的列名,如下所示:

我做错了什么?如果我在第一部分中没有静态地标定行名称,那么我会得到不同数量的列错误。这是我的查询:

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
     , [...]

感谢任何帮助。

您正在 select 字符串:

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

您应该 select 数据来自 table 的实际列值

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

如果您的第一个查询没有您声明为字符串的列的值,您可以在那里使用 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 两边的列数相同(并且每列中的数据匹配)。