2015-09-07 131 views
1

我有两张桌子,可以自己完美地工作。在这里,我选择了所有与我的主页上购买的用户ID 12相对应的流量来源。如何正确连接两个表格?

SELECT date, trafficSource.A, trafficSource.B, trafficSource.C,hits.transaction.BuyID 
FROM (TABLE_DATE_RANGE([25.ga_sessions_],TIMESTAMP('2015-09-03'), TIMESTAMP('2015-09-03'))) 
WHERE hits.transaction.BuyID = '12' 

从哪里获得:

trafficSource.A,trafficSource.B,trafficSource.C,hits.transaction.BuyID 
    a     b     c   12 

在我的第二个表我选择那些流量来源符合特定标准:

SELECT trafficSource.A, trafficSource.B, trafficSource.C 
FROM (TABLE_DATE_RANGE([25.ga_sessions_],TIMESTAMP('2015-09-03') 
WHERE trafficSource.source = 'specific criteria' 

现在我想以产生包含信息的表全部BuyIDs并且有相应的流量来源:

SELECT trafficSource.A, trafficSource.B, trafficSource.C,hits.transaction.BuyID 
FROM (TABLE_DATE_RANGE([25.ga_sessions_],TIMESTAMP('2015-09-03'), TIMESTAMP('2015-09-03'))) AS result 
JOIN (SELECT hits.transaction.BuyID 
     FROM (TABLE_DATE_RANGE([25.ga_sessions_],TIMESTAMP('2015-09-03'), TIMESTAMP('2015-09-03'))))AS results 
     ON result.hits.transaction.BuyID =results.hits.transaction.BuyID 

越来越:

Error: 0.0 - 0.0: Ambiguous field reference transaction.BuyID 

query invalidQuery. 0.0 - 0.0: Ambiguous field reference transaction.BuyID 
+0

我不太明白为什么你需要加入,如果你只是想选择*所有* BuyIDs及其相应的流量来源。换句话说,你给的第一个查询(与条件)和加入的查询之间的关系是什么? – oulenz

+0

问题是,如果我选择所有'BuyIDs'和相应的'流量来源',我会在'BuyIDs'中得到一个含有大量'NA'的表格。采取联合会让事情变得更容易。 – Googme

回答

2

似乎是什么的情况是,你选择列transaction.BuyID,但它存在于你参加(“结果”和“结果”的表),所以BigQuery不知道你想要哪一个。 (即使这些值恰好相同,因为这就是您定义连接的方式。)请改为选择“result.hits.transaction.BuyID”。

+0

对不起,我只是调整了查询​​。我忘了'命中' – Googme

+0

好吧,但它仍然不明确,hits.transaction.BuyID存在于结果和结果中。 – oulenz

+0

调整'JOIN(SELECT hits.transaction.BuyID'到'JOIN(SELECT result.hits.transaction.BuyID')给出 '错误:字段'result.hits.transaction.BuyID'找不到'。' 'query invalidQuery。字段'result.hits.transaction.BuyID'找不到。' – Googme