outer join A和B获得的是A和B的并集(union), 即韦恩图(venn diagram)的所有部分.
示例
假定有两张表,每张表只有一列,列数据如下:
A B
- -
1 3
2 4
3 5
4 6
注意(1,2)是A表独有的,(3,4) 两张共有, (5,6)是B独有的。
Inner join
使用等号进行inner join以获得两表的交集,即共有的行。
select * from a INNER JOIN b on a.a = b.b;
select a.*,b.* from a,b where a.a = b.b;
a | b
--+--
3 | 3
4 | 4
Left outer join
left outer join 除了获得B表中符合条件的列外,还将获得A表所有的列。
select * from a LEFT OUTER JOIN b on a.a = b.b;
select a.*,b.* from a,b where a.a = b.b(+);
a | b
--+-----
1 | null
2 | null
3 | 3
4 | 4
Full outer join
full outer join 得到A和B的交集,即A和B中所有的行.。如果A中的行在B中没有对应的部分,B的部分将是 null, 反之亦然。
select * from a FULL OUTER JOIN b on a.a = b.b;
a | b
-----+-----
1 | null
2 | null
3 | 3
4 | 4
null | 6
null | 5