如何正确加入两个表?

时间:2015-09-07 12:39:16

标签: google-bigquery

我有两张桌子可以完美地独立工作。在这里,我选择了与我在主页上购买商品的用户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 

1 个答案:

答案 0 :(得分:2)

似乎是你正在选择列transaction.BuyID,但它存在于你加入的两个表中('结果'和'结果'),所以BigQuery不知道哪一个你要。 (尽管这些值恰好相同,因为这是您定义连接的方式。)请选择“result.hits.transaction.BuyID”。