表结构
A表
A_ID | A_NAME |
---|---|
1 | A |
2 | B |
3 | C |
6 | D |
B表
B_ID | B_NAME |
---|---|
1 | Q |
2 | W |
3 | E |
5 | R |
右连接
select a.id,a.name,b.id,b.name from a, b where a.id(+) = b.id;
结果
A_ID | A_NAME | B_ID | B_NAME |
---|---|---|---|
1 | A | 1 | Q |
2 | B | 2 | W |
3 | C | 3 | E |
5 | R |
左连接
select a.id,a.name,b.id,b.name from a, b WHERE a.id = b.id(+);
结果
A_ID | A_NAME | B_ID | B_NAME |
---|---|---|---|
1 | A | 1 | Q |
2 | B | 2 | W |
3 | C | 3 | E |
6 | D |
全连接
select a.id,a.name,b.id,b.name from a full join b on a.id = b.id;
结果
A_ID | A_NAME | B_ID | B_NAME |
---|---|---|---|
1 | A | 1 | Q |
2 | B | 2 | W |
3 | C | 3 | E |
5 | R | ||
6 | D |
结论
- 左连接:A=B(+)
- 右连接:(+)A=B
- 右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配,左连接与之相反
- 全连接返回的是两表的全集,无论匹配不匹配都返回行