首页 > 解决方案 > Left Join 两个带有 Partition by 和一些特定条件的表

问题描述

我想加入两个表,一个表是实际的表数据,另一个表是我正在审查的评论表,我想在日期条件下加入这两个表。
表 1 包含大量数据,包括 account_id、Partner_id、Dates 和 actual_review。
Review Table 是包含 account_id、Partner_id、Date of review 和 review_recommended 数据的表。

我正在做的是建立一个帐户并对帐户进行审核,然后在 review_recommended 中添加该审核。

Table 1:  
Id_partner | Id_account |    Date    |  actual_review  
    4      |   7009     | 2018/12/23 |     Good        
    4      |   7009     | 2018/12/25 |     Good    
    4      |   7009     | 2018/12/27 |     Good    
    4      |   7009     | 2018/12/31 |     Bad    
    4      |   7009     | 2019/01/10 |     Good    
    4      |   7009     | 2019/01/14 |     Good    
    4      |   7009     | 2019/01/16 |     Bad    
    4      |   7009     | 2019/02/12 |     Good    
    4      |   7009     | 2019/02/15 |     Good    
    4      |   7009     | 2019/02/18 |     Bad    
    4      |   7009     | 2019/02/25 |     Bad    
    4      |   7009     | 2019/03/05 |     Bad    
    4      |   7009     | 2019/03/06 |     Good    
    4      |   7009     | 2019/03/09 |     Good    
    4      |   7009     | 2019/03/12 |     Good    
    4      |   7009     | 2019/03/15 |     Bad    
    4      |   7009     | 2019/03/18 |     Bad    
    4      |   7009     | 2019/03/20 |     Good  

我考虑了一些因素,而不是他们的评论是好还是坏,并且会有一个不同的表格,这些评论我会在一段时间后对一个帐户进行审核,比如说如果我今天审核了帐户,我可能会审核某天或某天之后的帐户

Review Table :  
Id_partner | Id_account | Date_review |  review_recommended  
   4       |   7009     | 2018/12/22  |     Good   
   4       |   7009     | 2019/01/20  |     Bad  
   4       |   7009     | 2019/02/16  |     Good  
   4       |   7009     | 2019/03/12  |     Bad  

我想以这样的方式加入两个表,直到我再次查看它,我需要 review_recommended 相同,直到下一个

我尝试用 Left Join 来做,但它很困难,因为它连接了大多数行

Table After Joining :
Id_partner | Id_account |    Date    |  actual_review | review_recommended  
    4      |   7009     | 2018/12/23 |     Good       |      Good  
    4      |   7009     | 2018/12/25 |     Good       |      Good  
    4      |   7009     | 2018/12/27 |     Good       |      Good  
    4      |   7009     | 2018/12/31 |     Bad        |      Good  
    4      |   7009     | 2019/01/10 |     Good       |      Good  
    4      |   7009     | 2019/01/14 |     Good       |      Good  
    4      |   7009     | 2019/01/16 |     Bad        |      Good  
    4      |   7009     | 2019/02/12 |     Good       |      Bad  
    4      |   7009     | 2019/02/15 |     Good       |      Bad  
    4      |   7009     | 2019/02/18 |     Bad        |      Good   
    4      |   7009     | 2019/02/25 |     Bad        |      Good   
    4      |   7009     | 2019/03/05 |     Bad        |      Good   
    4      |   7009     | 2019/03/06 |     Good       |      Good   
    4      |   7009     | 2019/03/09 |     Good       |      Good   
    4      |   7009     | 2019/03/12 |     Good       |      Good   
    4      |   7009     | 2019/03/15 |     Bad        |      Bad   
    4      |   7009     | 2019/03/18 |     Bad        |      Bad   
    4      |   7009     | 2019/03/20 |     Good       |      Bad   

加入是在 id_accounts、id_partners、Date 和 Date_review 上完成的,因为我们在表中有许多帐户和合作伙伴。任何指导或帮助表示赞赏!

标签: sqljoinleft-join

解决方案


请试试这个。

SELECT 
  A.Id_partner ,A.Id_account ,A.Date,A.actual_review  ,B.review_recommended  
FROM table1 AS A
  LEFT JOIN Review AS B
  ON A.Id_account  = B.Id_account 
  AND A.Id_partner = B.Id_partner 

推荐阅读