出现此错误的原因是Join操作中的子查询应仅依赖于其中一个数据表,而不是两个。因此,可以通过将子查询移动到SELECT语句中而不是JOIN语句中来解决此问题。
例如,我们现在要将两个数据表customer和orders进行Join操作,然后在Join后用函数计算某个字段的值。
正确的写法:
SELECT c., o., my_function(o.order_total) AS calculated_value FROM customer c JOIN orders o ON c.customer_id = o.customer_id WHERE calculated_value > 100;
错误的写法:
SELECT c., o., my_function(o.order_total) AS calculated_value FROM customer c JOIN orders o ON c.customer_id = o.customer_id AND calculated_value > 100;
将函数的计算移到SELECT语句中后,问题得以解决。
上一篇:desktop.ini编码-揭秘desktop.ini文件:解读Windows文件夹自定义属性的神秘编码
下一篇:BigQuery:使用NodeJS客户端库从Cloud Storage执行加载作业时,似乎不遵守useAvroLogicalTypes。