内部加入两个 SELECT 查询

Inner join with two SELECT queries

我正在上一些在线课程,但对这一切还是很陌生。我有两个 SELECT 语句,它们可以完美地分开工作,但是当我添加 INNER JOIN 时,事情就不起作用了。我知道我一定是错过了一些如此简单得可笑的东西,但我只是没有看到它。

Farm_prices栏目信息

index       INTEGER NULLABLE    
date        DATE    NULLABLE    
cropType    STRING  NULLABLE    
GEO         STRING  NULLABLE    
pricePerMT  FLOAT   NULLABLE    

Monthly_FX栏目信息

index       INTEGER NULLABLE    
date        DATE    NULLABLE    
FXUSDCAD    FLOAT   NULLABLE    

以及我尝试加入的两个 select 语句

SELECT * 
FROM `ibm-project-326221.IBM_project.MONTHLY_FX` 
WHERE date >= '2020-07-01'

SELECT * 
FROM `ibm-project-326221.IBM_project.farm_prices` 
WHERE cropType = 'Canola' 
  AND GEO = 'Saskatchewan' 
  AND date >= '2020-07-01'

只是一个猜测,没有看到您的 table 架构、数据或预期结果,但简单的内部联接将是

select * 
from farm_prices p 
join MONTHLY_FX m on m.index=p.index
where p.cropType = 'Canola' 
and p.GEO = 'Saskatchewan' 
and p.date >= '2020-07-01'

据推测,您想要相应日期的外汇汇率,因此连接键应该是 date,而不是 index:

SELECT fp.*, fx.*
FROM `ibm-project-326221.IBM_project.farm_prices` fp JOIN
     `ibm-project-326221.IBM_project.MONTHLY_FX` fx
     ON fp.date = fx.date
WHERE fp.cropType = 'Canola' AND
      fp.GEO = 'Saskatchewan' AND
      fp.date >= '2020-07-01'