google-bigquery - 在bigquery中联接多个表

标签 google-bigquery

我希望能够在bigquery中加入多个表。加入两个很简单。

SELECT
t1.field1 AS field1,
t2.field2 AS field2,
t1.field3 AS field3
FROM [datasetName.tableA] t1
JOIN [datasetName.tableB] t2
ON t1.somefield = t2.anotherfield

但是,如果我想联接三个或更多表怎么办?我可以这样做吗
SELECT
t1.field1 AS field1,
t2.field2 AS field2,
t1.field3 AS field3,
t3.field4 as field4
FROM [datasetName.tableA] t1
JOIN [datasetName.tableB] t2
JOIN [datasetName.tableC] t3
ON t1.somefield = t2.anotherfield AND t1.somefield=t3.yetanotherfield

我已经尝试过了,但是没有用。我想我需要做些类似的事情
SELECT 
t12.field1 as field1,
t12.field2 as field2,
t3.field3 as field3,
FROM
(SELECT
t1.field1 AS field1,
t2.field2 AS field2,
t1.field3 AS field3
FROM [datasetName.tableA] t1
JOIN [datasetName.tableB] t2
ON t1.somefield = t2.anotherfield) t12
JOIN
[datasetName.tableC] t3
ON t12.field1 = t3.field1 

但是,有没有更简单的方法来实现这一目标?

谢谢,
布拉德

最佳答案

我认为您正在寻找类似以下的内容

SELECT
  t1.field1 AS field1,
  t2.field2 AS field2,
  t1.field3 AS field3,
  t3.field4 AS field4
FROM [datasetName.tableA] t1
JOIN [datasetName.tableB] t2 ON t1.somefield = t2.anotherfield
JOIN [datasetName.tableC] t3 ON t1.somefield = t3.yetanotherfield

关于google-bigquery - 在bigquery中联接多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37864827/

相关文章:

google-bigquery - Serviceaccount 没有 bigquery.jobs.create 权限

firebase - 我可以在 BigQuery 中可靠地查询 Firebase 日内表并获取 100% 的事件数据吗?

google-bigquery - 预留容量选项仍然可用吗?

java - 使用 Java API/Dataflow 将重复记录插入 Big Query - "Repeated field must be imported as a JSON array"

google-bigquery - bigquery 嵌套对象 : No such field

google-bigquery - 未设置应用程序名称。调用Builder#setApplicationName。错误

sql - Google BigQuery - 使用 WITH 和 RAND() 的错误

null - BigQuery - 过滤不丢失 'null' 值

java - 如何为 Oracle Goldengate BigQuery 适配器设置 gg.classpath

google-bigquery - BigQuery 中是否有与标准 SQL 等效的表通配符函数?