我想连接两个具有4个相同列名(id、fieldid、fieldcropyear、updateutc)的表。我想在fieldid上连接这两个表。
我使用了以下查询:
SELECT * FROM `xxx.yyy.111` AS ACT
INNER JOIN `xxx.yyy.222` AS BOUND
ON BOUND.FieldID = ACT.FieldID
AND BOUND.FieldCropYear = ACT.FieldCropYear
运行后,出现以下错误: Duplicate column names in the result are not supported. Found duplicate(s): ID, FieldID, FieldCropYear, UpdateUTC
是否可以选择*但在一个Dataframe中重命名这4列?最有效的方法是什么?有没有可能是这样的:
SELECT *
EXCEPT(ID, FieldID, UpdateUTC, FieldCropYear),
ID as ID_b,
FieldID as FieldID_b,
UpdateUTC as UpdateUTC_b,
FieldCropYear as FieldCropYear_b
FROM `xxx.yyy.222` AS BOUND
INNER JOIN `xxx.yyy.111` AS ACT
ON BOUND.FieldID_b = ACT.FieldID
AND BOUND.FieldCropYear_b = ACT.FieldCropYear
2条答案
按热度按时间mklgxw1f1#
退房
using()
而不是on
-但是你必须使用所有的字段:如果由于某些字段实际上不同而没有意义,请重命名子查询中的某些字段:
没有测试代码,但我希望方法是明确的
66bbxpm52#
bigquery使用
replace
:注意:当我想从具有重叠名称的表中选择列时,我通常会选择它们作为记录:
不过,我不确定这是否适合你。