Oracle DB - 不存在匹配数据时的表连接问题
Posted
技术标签:
【中文标题】Oracle DB - 不存在匹配数据时的表连接问题【英文标题】:Oracle DB - Table join issue when no matching data exists 【发布时间】:2020-12-11 11:40:01 【问题描述】:我有 Oracle DB 和两个表如下
Vaccine_Trns
ID | Vac_Code | Patient | TxnDate
--------------------------------------
V01 | SER520 | test1 | 2020-12-07
V02 | SER519 | test2 | 2020-12-07
V03 | SER520 | test3 | 2020-12-07
V04 | SER523 | test4 | 2020-12-07
V05 | N/A | test5 | 2020-12-07
Vaccine_Msr
ID | Desc |
------------------
SER519 | VacDesc01
SER520 | VacDesc02
SER523 | VacDesc03
我知道,当我通过 Vaccine_Trns 中的Vac_Code
和 Vaccine_Msr 中的ID
加入这两个表时,我在 Vaccine_Trns 中丢失了 V05 行strong>,但是下面有没有办法以这种方式获取结果?
没有 V05,它是一个简单的连接,但我不知道在这里做什么。
非常感谢您。
预期结果>>
Patient | Desc | TxnDate
--------------------------------
test1 | VacDesc02 | 2020-12-07
test2 | VacDesc01 | 2020-12-07
test3 | VacDesc02 | 2020-12-07
test4 | VacDesc03 | 2020-12-07
test5 | null | 2020-12-07
【问题讨论】:
提示:LEFT JOIN
.
【参考方案1】:
使用left join
:
select vt.patient, vm.desc, vt.txndate
from Vaccine_Trns vt left join
Vaccine_Msr vm
on vt.Vac_Code = vm.id
【讨论】:
【参考方案2】:您可以使用LEFT JOIN
select t.Patient, m.desc, t.txndate
from Vaccine_Trns t left join Vaccine_msr m
on t.Vac_Code = msr.id
【讨论】:
以上是关于Oracle DB - 不存在匹配数据时的表连接问题的主要内容,如果未能解决你的问题,请参考以下文章