通过Cloud Datalab加入Google BigQuery

问题描述:

我试图在Google BigQuery中对来自两个不同表格(其中一个是视图)的两列进行联接。我曾尝试多种方式,但最一贯收到此错误:通过Cloud Datalab加入Google BigQuery

invalidQuery: 2.1 - 0.0: JOIN cannot be applied directly to a table union or to a table wildcard function. Consider wrapping the table union or table wildcard function in a subquery (e.g., SELECT *). 

这里是我的SQL(传统)查询:

SELECT 
    blp_today.beta_key, 
    blp_today.px_last, 
    blp_today.eqy_weighted_avg_px, 
    blp_today.created_date, 
    blp_today.security_ticker, 
    ciq_company_stg.ticker, 
    ciq_company_stg.ciq 
FROM 
    [fcm-dw:acquisition_bloomberg.blp_today], 
    [fcm-dw:acquisition_ciq] 
JOIN 
    blp_today.security_ticker AS ticker 
ON 
    blp_today.security_ticker = ciq_company_stg.ticker 
LIMIT 1000 

任何帮助将非常感激。

我认为你要么想是这样的:

SELECT * FROM(SELECT 
    beta_key, 
    px_last, 
    eqy_weighted_avg_px, 
    created_date, 
    security_ticker, 
FROM 
    [fcm-dw:acquisition_bloomberg.blp_today], 
    [fcm-dw:acquisition_ciq]) as a 
JOIN 
    blp_today.security_ticker AS ticker 
ON 
    a.security_ticker = ciq_company_stg.ticker 
LIMIT 1000 

//编辑:我刚才那种错过了,你是(后您的加入语句)加入表实际上并不似乎是一个表。你是否想加入或结合这两个表:[fcm-dw:acquisition_bloomberg.blp_today]和[fcm-dw:acquisition_ciq]?后者甚至是一张桌子?您的代码似乎表明存在另一个名为:[fcm-dw:acquisition_ciq.ciq_company_stg]的表?

+0

后者实际上是在同一个表的视图,这有助于虽然,谢谢。 –

首套你的工会成子选择再加入结果

select ... 
FROM 
(select * from 
    [fcm-dw:acquisition_bloomberg.blp_today], 
    [fcm-dw:acquisition_ciq]) t 
JOIN 
    blp_today.security_ticker AS ticker