如何在Bigquery中查询多个嵌套字段?

How to query multiple nested fields in Bigquery?

当我查询两级嵌套字段时,我遗漏了一些行。

架构是这样的:

Productid   STRING  REQUIRED 
Variants    RECORD  REPEATED
Variants.SKU    STRING  NULLABLE
Variants.Size   STRING  NULLABLE
Variants.Prices RECORD  REPEATED
Variants.Prices.Country STRING  NULLABLE
Variants.Prices.Currency    STRING  NULLABLE

部分 Variants.Prices 条记录为空。

当我使用以下查询查询此 table 时:

select Productid,Variants.SKU,Variants.Size
from ga-export-0000.feed.feed_dev
,UNNEST (Variants) AS Variants

我得到的行比这行多得多:

select Productid,Variants.SKU,Variants.Size
,Prices.Currency,Prices.Country
from ga-export-0000.feed.feed_dev
,UNNEST (Variants) AS Variants
,UNNEST(Variants.Prices) as Prices 

那是因为它没有 returns 行缺少 Variants.Prices。

我如何修改我的第二个查询,以便它 returns 所有行,如果缺少 Variants.Prices 它显示 NULL?

您可能对文档中的 Flattening arrays 主题感兴趣。使用 LEFT JOIN 而不是逗号,例如:

select Productid,Variants.SKU,Variants.Size
,Prices.Currency,Prices.Country
from `ga-export-0000.feed.feed_dev`
,UNNEST (Variants) AS Variants
LEFT JOIN UNNEST(Variants.Prices) as Prices 

如果该数组为空,这将 return PricesNULL 值。