您的位置:首页 > 数据库 > Oracle

oracle连接查询

2016-02-29 19:46 549 查看
以下的相关内容主要是对Oracle join用法的具体介绍,如果你对Oracle join有不解之处时,你可以通过以下的文章对其的实际应用与功能有所了解,以下是文章的具体介绍,望你浏览完以下的内容会有所收获。

8i:

create table dali.test1(a int,b int);  
create table dali.test2(a int,b int);  
insert into dali.test1 values(1,456);  
insert into dali.test1 values(2,427);  
insert into dali.test2 values(1,45456);  
insert into dali.test2 values(3,45656); 

---内连接

select * from dali.test1 a, dali.test2 b where a.a=b.a; 

---左连接

select * from dali.test1 a, dali.test2 b where a.a=b.a(+); 

---右连接

select * from dali.test1 a, dali.test2 b where a.a(+)=b.a; 

---完全连接

select * from dali.test1 a, dali.test2 b where a.a=b.a(+)  
union  
select * from dali.test1 a, dali.test2 b where a.a(+)=b.a; 

---迪卡尔

select * from dali.test1, dali.test2; 

在Oracle join的用法中9i和sqlserver一样 left join,right join,full join

分为1.
INNER JOIN 2. LEFT JOIN 3. RIGHT JOIN 4.LEFT OUTER JOIN 

首先设定一个我们要用的两个表

表A 表B

ID NAME ID CLASS

1 IBM 1 C1

2 SONY 3 C3

3 BMW 4 C4

1 INNER JOIN: SELECT * FROM A INNER JOIN B ON A.ID=B.ID 

得表 ID NAME CLASS

1 IBM C1

3 BMW C3

对了 就是 两个表的ID都存在并相同 得到这两个表的组合表

2
LEFT JOIN : SELECT * FROM A LEFT JOIN B ON A.ID=B.ID 

得表 ID NAME CLASS

1 IBM C1

2 SONY null

3 BMW C3

在Oracle join的用法中上面的相关操作可说是很复杂的。 如果还有方向感 就行 LEFT(左) 得到的是A(left语句的左边的表)的所有记录 而B表对应的记录没有的话也要补齐

3
RIGHT JOIN : SELECT * FROM A RIGHT JOIN B ON A.ID=B.ID 

得表 ID NAME CLASS

1 IBM C1

3 BMW C3

4 null C4

对了RIGHT(右) 得到的是B(right语句的右边的表)的所有记录 而A表对应的记录没有的话也要补齐 (我也翻身了! 呵呵)

4
FULL OUTER JOIN: SELECT * FROM A FULL OUTER JOIN B ON A.ID=B.ID 

得表 ID NAME CLASS

1 IBM C1

2 SONY null

3 BMW C3

4 null C4

以上的相关内容就是对Oracle join的用法相关内容的介绍,望你能有所收获。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: