【问题标题】:Using update with Left Join BigQuery将更新与 Left Join BigQuery 结合使用
【发布时间】:2021-01-01 11:41:57
【问题描述】:

我正在尝试在 BigQuery 中使用 LEFT JOIN 编写更新查询,但我不知道如何编写。

  update Table1
  set ColumnTest =  ifnull(b.value, 'no run')
  From left join  (select distinct ID,value FROM Table2 where value = 10) B  --
  where Table1.ID= Table2.ID

我有 2 个表 Table1 和 Table2

我想用 Table2.Value 更新 Table1.ColumnTest,其中 Table1.ID= Table2.ID 如果 Table1 Table2 则使用“不运行”更新 Table1.ColumnTest

谢谢!!

新尝试

  UPDATE Table1
  SET LP = IFNULL(t2.value, 'no run')
  FROM (     select distinct hits.eventInfo.eventCategory as ID, value
       FROM Table2
       CROSS JOIN UNNEST (hits) AS hits
       left join  TAble1 using (hits.eventInfo.eventCategory)
       WHERE) t2
 WHERE t1.ID = t2.ID

错误:语法错误:应为“)”或“,但得到“。”

【问题讨论】:

    标签: google-bigquery left-join updates


    【解决方案1】:

    我想用 Table2.Value 更新 Table1.ColumnTest,其中 Table1.ID= Table2.ID 并且如果 Table1 Table2 然后用“不运行”更新 Table1.ColumnTest

    以下是 BigQuery 标准 SQL

    UPDATE `table1` t1
    SET ColumnTest = IFNULL(value, 'no run')
    FROM (
      SELECT id, value
      FROM `table1`
      LEFT JOIN `table2`
      USING(id) 
    ) t2
    WHERE t1.id = t2.id
    

    【讨论】:

    • 我收到语法错误。我添加了编辑我的帖子以反映您建议的更改和错误。感谢您的帮助
    • 这是/不是您最初问题的一部分,现在它显然有不同的问题!请将其发布为包含所有相关详细信息的新问题,我们将很乐意提供帮助 :o)
    • 我已将其发布为另一个问题:stackoverflow.com/questions/63890475/…。感谢您的帮助
    • 我明白了——但它太乱了——我建议你仔细检查并更正你在那里提出的查询——现在对我来说没有意义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 2016-04-03
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多