查询使用相同字段的多个表

时间:2016-06-16 01:07:56

标签: sql google-bigquery

我使用bigquery查询共享模式的两个数据集:

SELECT
    *
FROM (
  SELECT
    name as name,
    REGEXP_EXTRACT_ALL(details, r"(value=\w+)") as regex
  FROM
    Dataset.table1,
    Dataset.table2 )
WHERE
  ARRAY_LENGTH(regex) > 0

但我得到的错误是" name"字段是模糊的,这是有道理的,因为我没有指定两个表中的任何一个。

有没有办法一次查询2+个表中的共享字段?

2 个答案:

答案 0 :(得分:2)

由于使用了ARRAY_LENGTH和REGEXP_EXTRACT_ALL,您似乎正在使用BigQuery Standard SQL模式。
同时,您仍然使用UNION ALL使用comma的Legacy SQL概念 - 这不是标准SQL的情况! 你应该使用明确的UNION ALL
希望这有帮助!

答案 1 :(得分:0)

您可以使用tablename.columnname 使用以下查询

SELECT
    *
FROM (
  SELECT
    table1.name as name,
    REGEXP_EXTRACT_ALL(details, r"(value=\w+)") as regex
  FROM
    Dataset.table1,
    Dataset.table2 )
WHERE
  ARRAY_LENGTH(regex) > 0