sql - BigQuery - 连接谓词中不支持带表的子查询

标签 sql google-bigquery bigquery-udf

最近我开始从事 BigQuery 工作,但有些事情仍然让我感到困惑。 Big Query 上的此查询的替代方案是什么?

select a.abc, c.xyz
from table1 as a
left join table2 as c
on a.abc = c.abc
and c.date = (select t.date from table3 t)

问题是 Big Query 不支持连接中的子查询。我尝试了很多替代方案,但结果彼此不匹配。

最佳答案

假设 table3.date 是唯一的,请尝试编写如下查询:

select a.abc, c.xyz
from table1 a left join
     (table2 c join
      table3 t
      on c.date = t.date
     )
     on a.abc = c.abc;

如果table3中有重复项,您可以将其表述为:

select a.abc, c.xyz
from table1 a left join
     (table2 c join
      (select distinct date
       from table3 t
      ) t
      on c.date = t.date
     )
     on a.abc = c.abc;

关于sql - BigQuery - 连接谓词中不支持带表的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69293947/

相关文章:

sql - 将事件表中的数据与事件发生之前更改日志表中的最新数据连接起来

google-bigquery - 合并语句的 BigQuery 等价物

php - 在 Laravel 5 迁移中使列不可为空

sql - Postgresql - 将整行作为数组返回

javascript - Google BigQuery通过API访问公共(public)数据集

json - 导入空值的json数据

javascript - 我们如何转换 .proto 文件和 JSON 描述符?

sql - 可以使用 HAVING 子句进行删除吗?

sql - Eclipse 伽利略 SQL 编辑器 : is there a code formatter (tidy) function?

google-analytics - GA360 导出到 Bigquery