【问题标题】:Why I am getting Ambiguous field name 'x' in JOIN为什么我在 JOIN 中得到不明确的字段名称“x”
【发布时间】:2016-08-16 22:09:06
【问题描述】:

事实 1 - 我在 BigQuery Web UI 中成功运行如下简单查询

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  

事实 2 - 当我尝试使用以下选项将 [非常相同的查询] 的结果写入表时 - 它失败!

事实 3 - 使用以下选项对表格进行相同的查询 - 成功

问题 - 为什么会出现此错误?

注意
我在 SO 之外被问到这个问题,所以决定在这里分享。
如您所见,“解决方法”是“已找到”-因此,如果没有对实际问题进行解释/回答,请不要建议如何重写查询。

【问题讨论】:

  • 您是否发布过有关此问题的错误报告?
  • 还没有。想先等待可能的解释

标签: google-bigquery


【解决方案1】:

今天早上我在尝试保存视图时遇到了类似的问题,发现其他人在 Web UI 和批处理之间切换时遇到了类似的问题。从我收集到的信息来看,这是一个奇怪的极端案例,您可以使用三重连接。

我发现this 有助于弄清楚发生了什么,特别是这一点:

“这里的根本问题是查询中最终 JOIN 的左侧源试图将 [a.x] 和 [b.x] 折叠到同一个范围内,两者都使用名称 'x',并导致此错误。”

有人在Official Google BigQuery issue and feature tracker 上提出了类似的问题,并被提到了上面的 SO 帖子。

希望其中的一个有助于澄清一下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 2010-09-06
    • 2018-11-10
    相关资源
    最近更新 更多