例えば、注文単位で複数商品を同時発注可能な場合、ordersテーブルを設計した場合は以下のような構造に。
フィールド名 | 種類 | モード |
---|---|---|
id | STRING | NULLABLE |
created_time | TIMESTAMP | NULLABLE |
shohins | RECORD | REPEATED |
item | STRING | REPEATED |
price | INTEGER | REPEATED |
REPEATEDの項目をそのままSELECTしようとすると以下のようなエラーが出ます
SELECT id, created_time, item, price FROM dataset.table LIMIT 3 > Unrecognized name: items at [4:4]
対策としては、以下のようにREPEATEDになっている項目をUNNESTで指定してから、SELECTする
SELECT id, created_time, s.item, s.price FROM dataset.table, UNNEST(shohins) AS s LIMIT 3
id | created_time | items | price |
---|---|---|---|
a123 | 2023-08-01 | りんご | 300 |
a123 | 2023-08-01 | みかん | 400 |
a123 | 2023-08-03 | バナナ | 200 |