Sql 使用多个重复列名联接2个表-Bigquery(错误:结果中不支持重复列名)
我使用的是大查询,需要连接两个表,表1有14列,表2有16列。我需要根据table1.FIPS和table2.fip_代码从表2中检索值。 其中两列的名称相同(列county和列state,表1中该列的值大于表2)。 我正在尝试进行外部联接,但由于列名原因而失败: *从Sql 使用多个重复列名联接2个表-Bigquery(错误:结果中不支持重复列名),sql,google-bigquery,outer-join,columnname,Sql,Google Bigquery,Outer Join,Columnname,我使用的是大查询,需要连接两个表,表1有14列,表2有16列。我需要根据table1.FIPS和table2.fip_代码从表2中检索值。 其中两列的名称相同(列county和列state,表1中该列的值大于表2)。 我正在尝试进行外部联接,但由于列名原因而失败: *从表1 完全外部连接表2 在表1中。FIPS=表2.fip_代码 错误是:“结果中不支持重复的列名。发现重复的列名:county,state”* 我使用alias进行了如下尝试: *选择 *除(县、州)外, 县为县一,州为县二 从表
表1
完全外部连接表2
在表1中。FIPS=表2.fip_代码
错误是:“结果中不支持重复的列名。发现重复的列名:county,state”*
我使用alias进行了如下尝试:
*选择
*除(县、州)外,
县为县一,州为县二
从表1
完全外部连接表2
在表1中。FIPS=表2。fip_代码*
错误是:列名county不明确
有什么建议吗?我不能排除county和state字段,因为我的代码需要它们
谢谢 如果这些是重复的,您只需要从一个表中删除它们:
SELECT table1.* EXCEPT (county, state),
table1.county as county_1, table1.state as state_1
table2.*
FROM table1 FULL JOIN
table2
ON table1.FIPS = table2.fip_code;
或使用替换:
SELECT table1.* REPLACE (county as count_1, state as state_1),
table2.*
FROM table1 FULL JOIN
table2
ON table1.FIPS = table2.fip_code;
或选择值作为记录:
SELECT table1, table2
FROM table1 FULL JOIN
table2
ON table1.FIPS = table2.fip_code;
您可以创建表别名,然后在列名之前使用它来标识从哪个表中获取列
SELECT * EXCEPT(county,state),
t1.county AS county_one,
t1.state AS county_two,
t2.*
FROM table1 t1
join table2 t2
on t1.FIPS = t2.fip_code
您的查询:
从表1上的表1完全外部联接表2中选择*。FIPS=表2.fip_代码
你的目标是:
“我需要根据table1.FIPS和table2.fip_代码从表2中检索值”
一种简单的方法是为表名添加别名:
Select
t2.*
--, t1.* -- you said you only need columns from t2, so I commented this out.
From
table1 as t1 -- depending on the sql flavor, you may have
outer join table2 as t2 -- to omit the 'as' on these lines
on t1.FIPS = t2.fip_code
Where
[add some where stuff here if needed]
相同错误“结果中不支持重复的列名。发现重复的列名:County,State”。我的列没有前缀,所以更改表名不会影响列名。谢谢!选项一和你的语法有效(不确定它与我使用的语法有多不同,但这一个有效)@Montevidean。您的有选择*
,它没有指定表名。