尝试在BigQuery中查询多个表时,列名称不明确

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试在BigQuery中查询多个表时,列名称不明确相关的知识,希望对你有一定的参考价值。

我想查询多个表,所有表都以相同的顺序使用相同的列名,并组合结果。

SELECT SUBSTR(arrest_date, 0, 4) arrest_year, *
FROM 
  `OBTS.circuit11`,
  `OBTS.circuit15`,
  `OBTS.circuit17`,
  `OBTS.circuit19`
WHERE 
  init_statute LIKE '%3%22%32%' OR
  init_statute LIKE '%3%22%34%' OR
  LOWER(init_charge_descrip) LIKE '%suspend%';

当我运行这个BigQuery给我以下错误。

Column name init_statute is ambiguous at [8:3]

如何查询这些表并将所有结果行合并为一组结果?

答案

我想你正在寻找UNION ALL vs CROSS JOIN(注意:BigQuery标准SQL中的逗号用于表达CROSS JOIN)

所以,你最有可能在下面寻找

SELECT SUBSTR(arrest_date, 0, 4) arrest_year, * 
FROM (
  SELECT * FROM `OBTS.circuit11` UNION ALL
  SELECT * FROM `OBTS.circuit15` UNION ALL
  SELECT * FROM `OBTS.circuit17` UNION ALL
  SELECT * FROM `OBTS.circuit19`
)
WHERE 
  init_statute LIKE '%3%22%32%' OR
  init_statute LIKE '%3%22%34%' OR
  LOWER(init_charge_descrip) LIKE '%suspend%'

以上是关于尝试在BigQuery中查询多个表时,列名称不明确的主要内容,如果未能解决你的问题,请参考以下文章