没有连接的BigQuery查询会在"而不是"中出现连接错误用法

时间:2015-03-04 19:08:04

标签: google-bigquery

当我从子选择中选择并最终想要对结果进行“不在”时,BQ查询会出现以下错误:

Error: Join attribute is not defined: t1.customer_id

当我用一个简单的where t1.customer_id = 1更改“not in”部分时,执行查询。

查询看起来不像是一个连接但是从错误中看,BigQuery似乎认为它是。

select t1.customer_id , GROUP_CONCAT(t1.id)  from  ( 
   select  customer.id as customer_id, id
  from (TABLE_QUERY(redacted , 'table_id in     ( "x_201502",     "x_201503")'))
  where created >= '2014-09-05 00:00:00' 
  and created < '2015-03-04 00:00:00' 
  group by customer_id, id
) t1
where  t1.customer_id not in (
  select customer.id as customer_id 
  from (TABLE_QUERY(redacted , 'table_id in ("y_201503")'))
  where created >= '2015-03-03 18:55:59' 
  group by customer_id
) 
group by t1.customer_id;

我最初试图在子选择中放入“not in”子选择,但BQ也为该方法投掷了错误,因此我尝试了这个构造。请注意,当跟随2个子选择的连接时,“not in”部分确实有效。

关于如何在这种特殊情况下完成'不在'检查的任何想法?

1 个答案:

答案 0 :(得分:5)

这是BigQuery中的SQL不兼容。作为一种解决方法,我认为只使用WHERE customer_id NOT IN (...)就可以了。