我使用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+个表中的共享字段?
答案 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