A表

oracle中各种连接示例 left join 、right join、 full join等

 B表

oracle中各种连接示例 left join 、right join、 full join等

1. --内连接 把匹配的信息全部查出来

select * from A a inner join B b on a.id = b.id;

获取A表和B表中id相对应的数据(仅显示id对应的匹配数据)

oracle中各种连接示例 left join 、right join、 full join等

 

2. --左连接 包含左边表所有记录,右边所有的匹配的记录,如果没有则用空补齐(简写的时候+在右边)(三种写法都可以)

select * from A a left join B b on a.id = b.id;

select * from A a left outer join B b on a.id = b.id;

select * from A a,B b where a.id = b.id(+);

(查询A表所有数据,查询B表符合条件数据,,如果没有使用空补齐,如果B表数据多,删除不匹配数据)

(A表数据多,B表数据少)

(A表在左,B表在右)

oracle中各种连接示例 left join 、right join、 full join等

将A、B表互换位置

(A表数据多,B表数据少)

(B表在左,A表在右)

select * from B b left join A a on a.ID = b.ID;

(查询B表所有数据,查询A表符合条件数据,如果没有使用空补齐,如果A表数据多,删除不匹配数据)

oracle中各种连接示例 left join 、right join、 full join等

3. --right join 右连接 包括右边表所有记录,匹配左边表的记录,如果没有则以空补齐(简写的时候+在左边)(两种写法)

select * from A a right join B b on a.id = b.id;

select * from A a, B b where a.id(+) = b.id;

(A表数据多,B表数据少)

(A表在左,B表在右)

(查询B表所有数据,查询A表符合条件数据,如果没有使用空补齐,如果A表数据多,删除不匹配数据)

oracle中各种连接示例 left join 、right join、 full join等

 

select * from B b right join A a on a.ID = b.ID;

(A表数据多,B表数据少)

(B表在左,A表在右)

(查询A表所有数据,查询B表符合条件数据,,如果没有使用空补齐,如果B表数据多,删除不匹配数据)

oracle中各种连接示例 left join 、right join、 full join等

从结果看来:

select * from A a left join B b on a.id = b.id;

select * from B b right join A a on a.ID = b.ID;

查询结果结构相同,但是A、B表的顺序不同

 

select * from B b left join A a on a.ID = b.ID;

select * from A a right join B b on a.id = b.id;

查询结果结构相同,但是A、B表的顺序不同

 

4. --full join  全连接 意思是左右表所有的记录全部显示出来

select * from A a full join B b on a.id = b.id;

oracle中各种连接示例 left join 、right join、 full join等

select * from B b full join A a on a.id = b.id;

oracle中各种连接示例 left join 、right join、 full join等

 

相关文章:

  • 2022-12-23
  • 2021-12-08
  • 2022-03-08
  • 2022-12-23
  • 2021-11-17
  • 2021-05-19
猜你喜欢
  • 2022-02-16
  • 2022-12-23
  • 2021-10-07
  • 2021-11-05
  • 2021-11-30
  • 2021-11-19
相关资源
相似解决方案