BigQuery多数据集关联查询避免字段名冲突及字段正确引用方法
BigQuery多表关联同名字段正确引用方案
报错根源
BigQuery解析字段引用时,不支持直接通过数据集名.表名.字段名的全路径格式定位字段,仅支持通过「表别名/表名.字段名」格式引用。由于你关联的两张表表名完全相同(均为table_xxx),直接使用表名引用也会产生歧义,因此会触发无法识别名称的报错。
正确实现方式
给每张关联表设置独立的别名,通过别名引用对应表的字段,即可避免冲突,示例代码如下:
select t1.field_z as dataset01_table_xxx_field_z, t2.field_z as dataset02_table_xxx_field_z from dataset01.table_xxx as t1 join dataset02.table_xxx as t2 on t2.field_z = t1.field_z
补充说明
你删除数据集前缀后可正常运行,是因为两张表的关联条件为field_z相等,字段值完全一致,BigQuery不会触发歧义校验,但该方式无法区分两张表的同名字段,若字段值存在差异时会出现非预期结果,因此不推荐使用。
内容的提问来源于stack exchange,提问作者Capacytron
相关产品推荐
相关产品推荐

