如何正确连接两个表?

How to join two tables properly?

我有两个 table 可以单独使用。在这里,我 select 我所有的流量来源对应于在我的主页上购买了东西的用户 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

在我的第二个 table 我 select 满足特定条件的流量来源:

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

现在我想生成一个 table,其中包含有关所有 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 

情况似乎是您选择了列 transaction.BuyID,但它存在于您加入的两个表('result' 和 'results')中,所以 BigQuery 不知道你想要哪一个。 (即使值恰好相同,因为这就是您定义连接的方式。)改为 Select 'result.hits.transaction.BuyID'。