目前,我正在尝试将 4 个表连接在一起,只显示 5 列并将它们全部合并到一个表中。
这是查询:
SELECT
id,
platform,
url,
profileImageUrl,
name
FROM (
SELECT
f.id AS id,
f.platform AS platform,
f.url AS url,
f.profileImageUrl AS profileImageUrl,
f.name AS name
FROM
`l.p.link_f_main` AS f UNION
SELECT
i.id AS id,
i.platform AS platform,
i.url AS url,
i.profilePicture AS profileImageUrl,
i.fullName AS name
FROM
`l.p.link_i_main` AS i UNION
SELECT
t.id AS id,
t.platform AS platform,
t.url AS url,
t.profileImageUrl AS profileImageUrl,
t.name AS name
FROM
`l.p.link_t_main` AS t UNION
SELECT
y.id AS id,
y.platform AS platform,
y.url AS url,
y.profileImageUrl AS profileImageUrl,
y.name AS name
FROM
`l.p.link_y_main` AS y ) as main
这是错误:
Error: Syntax error: Expected keyword ALL or keyword DISTINCT but got keyword SELECT at [16:3]
我做错了什么?
答案:
1(对于大查询必须使用UNION ALL
而不是UNION
2( 所有联合列的数据类型应相同。 -
- 我有一个问题,柱子上的一个
STRING
-INT64, INT64, INT64, STRING
- 所以我将其余列也更改为
STRING
,以使其工作。
来自文档:UNION { ALL | DISTINCT }
.因此,您必须使用UNION ALL
或UNION DISTINCT
(这正是错误消息所说的(。根据HoneyBadger用户提到的,这是正确的解释。