sql - 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 上完成的,因为我们在表中有许多帐户和合作伙伴。任何指导或帮助表示赞赏!
解决方案
请试试这个。
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
推荐阅读
- java-8 - Java 8 中是否存在将流操作值分配给局部变量的“机制”?
- here-api - 如何通过 Fleet Telematics 服务获取路线计算中的海拔高度(此处地图)
- java - com.google.android.apps.gsa.sidekick.main.hn:无法完成刷新条目的计划请求。客户端错误代码:1
- reactjs - React 列表渲染不起作用 - 期望分配或函数调用,而是看到一个表达式
- assembly - ;\ 注释后的指令不执行?NASM 中评论中的反斜杠有什么特别之处?
- environment-variables - terraform 不加载在 fish 中设置的环境变量
- c++ - 没有模板类孪生的模板类
- ios - API调用后UICollectionViewCell图像重新加载问题
- c++ - 使用 -O3 编译时的不同评估
- tinymce-5 - Tinymce 5:执行预定义插件的自定义工具栏按钮