Google bigquery BigQuery:从其他表中的regexp\u匹配where字段中选择

Google bigquery BigQuery:从其他表中的regexp\u匹配where字段中选择,google-bigquery,Google Bigquery,如何从多个表中选择某些字段,同时与另一个表中的某些字段进行交叉检查。我想要其他表中列出的UDID的信息 举例说明: SELECT udid, score FROM (TABLE_QUERY(data_one,'REGEXP_MATCH(table_id, "Data_2014_05_*")')) WHERE udid IN (SELECT udid FROM data_two.udid_with_high_levels) GROUP BY udid 有没有可能用“WHERE IN”这样做?怎

如何从多个表中选择某些字段,同时与另一个表中的某些字段进行交叉检查。我想要其他表中列出的UDID的信息

举例说明:

SELECT udid, score 
FROM (TABLE_QUERY(data_one,'REGEXP_MATCH(table_id, "Data_2014_05_*")'))
WHERE udid IN (SELECT udid FROM data_two.udid_with_high_levels)
GROUP BY udid
有没有可能用“WHERE IN”这样做?怎么做?我得到以下错误: “不能在单个SELECT语句中组合JOIN(包括半JOIN)和UNION ALL(逗号)。请将UNION ALL移动到内部查询,或将UNION ALL移动到外部查询。”

既然我的第一个表来自regexp_match,那么如何使用JOIN来实现呢?语法是什么


谢谢大家!

您可以进行子选择

此对公共数据的查询显示了相同的错误:

SELECT title, SUM(requests) c
FROM (TABLE_QUERY([fh-bigquery:wikipedia],'REGEXP_MATCH(table_id, "pagecounts_2014*")')) 
WHERE title IN (
  SELECT title
  FROM [fh-bigquery:wikipedia.wikipedia_views_201308_en_top_titles_views]
  GROUP BY title) 
GROUP BY 1
ORDER BY 2
将外部选择添加到表选择中可修复此问题:

SELECT title, SUM(requests) c
FROM (SELECT title, requests 
  FROM (TABLE_QUERY([fh-bigquery:wikipedia],'REGEXP_MATCH(table_id, "pagecounts_2014*")')))
WHERE title IN (
  SELECT title
  FROM [fh-bigquery:wikipedia.wikipedia_views_201308_en_top_titles_views]
  GROUP BY title) 
GROUP BY 1
ORDER BY 2

谢谢你,这很有效!你有什么解释为什么会这样吗??看起来真的很傻!这是当前实现的一个不幸限制,应该加以解决。谢谢你的报道!