Sql Google BigQuery中的嵌套字段

Sql Google BigQuery中的嵌套字段,sql,google-bigquery,Sql,Google Bigquery,我正在尝试取消嵌套一些嵌套字段,并在GoogleBigQuery中执行子查询 这个很好用 SELECT id, custom_field_options FROM `project.database.ticket_fields` SELECT ticket_fields.id, ticket_fields.raw_title, ticket_custom_fields.name AS ticket_custom_fields_name, ticket_custom_fields.raw_na

我正在尝试取消嵌套一些嵌套字段,并在GoogleBigQuery中执行子查询

这个很好用

SELECT id, 
custom_field_options
FROM `project.database.ticket_fields`
SELECT ticket_fields.id,
ticket_fields.raw_title,
ticket_custom_fields.name AS ticket_custom_fields_name,
ticket_custom_fields.raw_name AS ticket_custom_fields_raw_name,
ticket_custom_fields.value AS ticket_custom_fields_value,
ticket_fields.created_at
FROM `project.database.ticket_fields` AS ticket_fields
LEFT JOIN UNNEST(custom_field_options) AS ticket_custom_fields
GROUP BY 1,2,3,4,5,6
“custom_field_options”是一个嵌套字段,这给我带来了一些问题。我有“custom\u field\u options.id”和“custom\u field\u options.name”以及一些其他嵌套字段

这也很好

SELECT id, 
custom_field_options
FROM `project.database.ticket_fields`
SELECT ticket_fields.id,
ticket_fields.raw_title,
ticket_custom_fields.name AS ticket_custom_fields_name,
ticket_custom_fields.raw_name AS ticket_custom_fields_raw_name,
ticket_custom_fields.value AS ticket_custom_fields_value,
ticket_fields.created_at
FROM `project.database.ticket_fields` AS ticket_fields
LEFT JOIN UNNEST(custom_field_options) AS ticket_custom_fields
GROUP BY 1,2,3,4,5,6
单独运行时,这两个查询都可以正常运行。现在,我尝试将第一个查询作为第二个查询的子查询运行,以从该查询中提取所有ID,并在此基础上运行下面的查询

SELECT ticket_fields.id,
ticket_fields.raw_title,
ticket_custom_fields.name AS ticket_custom_fields_name,
ticket_custom_fields.raw_name AS ticket_custom_fields_raw_name,
ticket_custom_fields.value AS ticket_custom_fields_value,
ticket_fields.created_at
FROM `project.database.ticket_fields` AS ticket_fields
LEFT JOIN UNNEST(custom_field_options) AS ticket_custom_fields
  WHERE id IN (SELECT id, 
  custom_field_options
  FROM `project.database.ticket_fields`)
GROUP BY 1,2,3,4,5,6

您可以限定
id
列名以使引用明确:

SELECT ticket_fields.id,
ticket_fields.raw_title,
ticket_custom_fields.name AS ticket_custom_fields_name,
ticket_custom_fields.raw_name AS ticket_custom_fields_raw_name,
ticket_custom_fields.value AS ticket_custom_fields_value,
ticket_fields.created_at
FROM `project.database.ticket_fields` AS ticket_fields
LEFT JOIN UNNEST(custom_field_options) AS ticket_custom_fields
  WHERE ticket_fields.id IN (SELECT id, 
  custom_field_options
  FROM `project.database.ticket_fields`)
GROUP BY 1,2,3,4,5,6

(我假设
ticket\u fields.id
是您要搜索的
id

您可以限定
id
列名以使引用明确:

SELECT ticket_fields.id,
ticket_fields.raw_title,
ticket_custom_fields.name AS ticket_custom_fields_name,
ticket_custom_fields.raw_name AS ticket_custom_fields_raw_name,
ticket_custom_fields.value AS ticket_custom_fields_value,
ticket_fields.created_at
FROM `project.database.ticket_fields` AS ticket_fields
LEFT JOIN UNNEST(custom_field_options) AS ticket_custom_fields
  WHERE ticket_fields.id IN (SELECT id, 
  custom_field_options
  FROM `project.database.ticket_fields`)
GROUP BY 1,2,3,4,5,6

(我假设
ticket\u fields.id
是您要搜索的
id

错误是什么?预期结果是什么?这是我的错误:列名id在[9:9]处不明确错误是什么?预期的结果是什么?这是我的错误:列名id在[9:9]是不明确的,这就是问题所在。我忘了那件事;好久没这么做了。还有一件事,我刚刚将子查询更改为:ticket\u metrics.id在何处(从
project.database.ticket\u metrics
中选择id)。错误内容为“无法识别的名称:票证度量”。子查询工作正常,在名为“ticket\u metrics”的表中肯定有一个名为“in”的字段。这很奇怪。没有更多的上下文很难说,对不起。如果你能发布一个更详细的单独问题,也许有人能提供帮助。是的,这就是问题所在。我忘了那件事;好久没这么做了。还有一件事,我刚刚将子查询更改为:ticket\u metrics.id在何处(从
project.database.ticket\u metrics
中选择id)。错误内容为“无法识别的名称:票证度量”。子查询工作正常,在名为“ticket\u metrics”的表中肯定有一个名为“in”的字段。这很奇怪。没有更多的上下文很难说,对不起。如果你能单独提出一个更详细的问题,也许有人能提供帮助。