BigQuery运行查询报错Unrecognized name: HTN_Global如何解决?
BigQuery
Unrecognized name: HTN_Global报错解决方案 错误原因
Unrecognized name: HTN_Global报错的核心原因是ON关联条件中错误使用数据集名称作为表字段的前缀:BigQuery在解析字段归属时,仅识别表名/表别名作为标识,FROM/JOIN语句中指定的数据集.表名仅用于定位表位置,不会将数据集名识别为表的前缀,因此在引用字段时不能带上数据集名称。
修正方案
方案1:直接删除ON条件中的数据集前缀
仅保留表名作为字段前缀即可正常运行:
SELECT COALESCE(hospital_ID, name) AS hypertension_case, gender, age, district, sector, facility, month, year FROM HTN_Global.emr_data FULL OUTER JOIN HTN_Global.log_data_sorted ON emr_data.names = log_data_sorted.names
方案2:给表设置别名(推荐,可读性更高)
给关联表设置短别名,所有字段引用都使用别名前缀,还能避免同名字段的歧义问题:
SELECT COALESCE(emr.hospital_ID, log.name) AS hypertension_case, emr.gender, emr.age, emr.district, emr.sector, emr.facility, log.month, log.year FROM HTN_Global.emr_data AS emr FULL OUTER JOIN HTN_Global.log_data_sorted AS log ON emr.names = log.names
注意事项
如果两张关联表存在同名字段(比如gender、创建时间等),SELECT子句中的字段也需要加上表名/别名前缀,避免触发Ambiguous field name字段歧义报错。
内容的提问来源于stack exchange,提问作者Alexis MIDUGI
相关产品推荐
相关产品推荐

