SELECT
a.id AS id,
b.v AS v,
c.w AS w
FROM (SELECT 1 AS id, "abc" AS x, "xyz" AS y) AS a
LEFT JOIN (SELECT "abc" AS x, "111" AS v) AS b ON a.x = b.x
LEFT JOIN (SELECT "xyz" AS y, "222" AS w) AS c ON a.y = c.y
注意 :
我在 SO 之外被问到这个问题,所以决定在这里分享。
正如您所看到的,“解决方法”已“找到” - 因此,如果查询未附有对实际问题的解释/答案,请不要建议如何重新编写查询。
最佳答案
今天早上我在尝试保存 View 时遇到了类似的问题,发现其他人在 Web UI 和批处理之间切换时遇到了这个问题。从我收集到的,这是一个奇怪的角落案例,您可以通过三重连接获得。
我发现 this 有助于弄清楚发生了什么,特别是这一点:
“这里的潜在问题是查询中最终 JOIN 的左源试图将 [a.x] 和 [b.x] 折叠到同一个范围内,两者都具有名称 'x',并导致此错误。”
有人在 Official Google BigQuery issue and feature tracker 上问了一个类似的问题,并被提到了上面的 SO 帖子。
希望其中之一有助于清除它。
关于google-bigquery - 为什么我在 JOIN 中得到不明确的字段名称 'x',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38965631/