2015-09-07 112 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