首页 > 解决方案 > SQL UNION 查询返回具有列名的第一行

问题描述

我处于使用 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
     , [...]

任何帮助表示赞赏。

标签: mysqlsqlunion

解决方案


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


推荐阅读