我希望能够在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
Run Code Online (Sandbox Code Playgroud)
但是,如果我想加入三张或更多桌子怎么办?我可以这样做吗?
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
Run Code Online (Sandbox Code Playgroud)
我试过了,但它不起作用.我想我需要做点什么
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
Run Code Online (Sandbox Code Playgroud)
但有没有更简单的方法来实现这一目标?
谢谢,布拉德
Mik*_*ant 13
我想你正在寻找类似下面的东西
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
Run Code Online (Sandbox Code Playgroud)
您还可以使用USING(field)标准 SQL 中的表示法。这实际上只是@mikhail-berlyant 答案的糖。文档在这里
#standardSQL
SELECT
t1.field1 AS field1,
t2.field2 AS field2,
t1.field3 AS field3
FROM `datasetName.tableA` t1
JOIN `datasetName.tableB` t2 USING(commonfield_AB)
JOIN `datasetName.tableC` t3 USING(commonfield_AC)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8596 次 |
| 最近记录: |