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
两边的列数相同(并且每列中的数据匹配)。
我处于使用 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
两边的列数相同(并且每列中的数据匹配)。