天天看點

Oracle之left join,right join,inner join,full join

1. 首先建立A、B表

CREATE TABLE A
(
aid int NOT NULL, 
aname VARCHAR2(10) NOT NULL
)
insert into A(aid,aname) values(1,'andy11');
insert into A(aid,aname) values(2,'andy22');
insert into A(aid,aname) values(3,'andy33');
insert into A(aid,aname) values(4,'andy44');
insert into A(aid,aname) values(5,'andy55');

CREATE TABLE B
(
bid int NOT NULL, 
bmajor VARCHAR2(10) NOT NULL
)
insert into B(bid,bmajor) values(1,'java1');
insert into B(bid,bmajor) values(2,'java3');
insert into B(bid,bmajor) values(3,'java5');
insert into B(bid,bmajor) values(4,'java7');
insert into B(bid,bmajor) values(8,'java9');
           

1.1 select * from A;資料如下:

Oracle之left join,right join,inner join,full join

1.2select * from B; 資料如下:

Oracle之left join,right join,inner join,full join

2.left join或left outer join:左聯接,傳回包括左表中的所有記錄和右表中聯結字段相等的記錄

2.1 select * from A left join B on a.aid=b.bid;
           
Oracle之left join,right join,inner join,full join

2.2 select* from B left join A on a.aid=b.bid;

Oracle之left join,right join,inner join,full join

3.right join或right outer join:右聯接,傳回包括右表中的所有記錄和左表中聯結字段相等的記錄

3.1 select * from B right join A on a.aid=b.bid

Oracle之left join,right join,inner join,full join

3.2 select * from A right join B on a.aid=b.bid;

;

Oracle之left join,right join,inner join,full join

4.inner join:等值連接配接,隻傳回兩個表中聯結字段相等的行

4.1 select* from B inner join A on a.aid=b.bid;

Oracle之left join,right join,inner join,full join

4.2 select* from A inner join B on a.aid=b.bid;

Oracle之left join,right join,inner join,full join

5.full join或full outer join:完全連接配接,傳回兩個表的所有記錄行

51 select * from B full join A on a.aid=b.bid;

Oracle之left join,right join,inner join,full join

5.2 select * from A full join B on a.aid=b.bid;

Oracle之left join,right join,inner join,full join