SQL Joins - kazumov/abap GitHub Wiki

SQL Joins

Abstract

Inner Join

[--------- set a --------]
              [-------- set b ---------]
              [- result -]
select * 
from a 
inner join b on a.key = b.key

Left Join

[--------- set a --------]
              [-------- set b ---------]
[-------- result --------]
select * 
from a 
left join b on a.key = b.key

Left Join except for intersection with B

[--------- set a --------]
              [-------- set b ---------]
[-- result ---]
select *
from a
left join b on a.key = b.key
where b.key is null 

Right Join

[--------- set a --------]
              [-------- set b ---------]
              [-------- result --------]
select *
from a 
right join b on a.key = b.key 

Right Join except for intersection with A

[--------- set a --------]
              [-------- set b ---------]
                         [-- result ---]
select *
from a
right join b on a.key = b.key
where b.key is null 

Full Join

[--------- set a --------]
              [-------- set b ---------]
[--------------- result ---------------]
select * 
from a
full join b on a.key = b.key

Full Join except for intersection (Inner Join)

[--------- set a --------]
              [-------- set b ---------]
              [- result -]
select * 
from a
full join b on a.key = b.key
where a.key is null
or b.key is null

Additional source: https://stackoverflow.com/questions/38549/what-is-the-difference-between-inner-join-and-outer-join