以下的相关内容主要是对Oracle join用法的具体介绍,如果你对Oracle join有不解之处时,你可以通过以下的文章对其的实际应用与功能有所了解,以下是文章的具体介绍,望你浏览完以下的内容会有所收获。
8i:
createtabledali.test1(aint,bint); createtabledali.test2(aint,bint); insertintodali.test1values(1,456); insertintodali.test1values(2,427); insertintodali.test2values(1,45456); insertintodali.test2values(3,45656);
—内连接
select*fromdali.test1a,dali.test2bwherea.a=b.a;
—左连接
select*fromdali.test1a,dali.test2bwherea.a=b.a(+);
—右连接
select*fromdali.test1a,dali.test2bwherea.a(+)=b.a;
—完全连接
select*fromdali.test1a,dali.test2bwherea.a=b.a(+) union select*fromdali.test1a,dali.test2bwherea.a(+)=b.a;
—迪卡尔
select*fromdali.test1,dali.test2;
在Oracle join的用法中9i和sqlserver一样 left join,right join,full join
分为1.
INNERJOIN2.LEFTJOIN3.RIGHTJOIN4.LEFTOUTERJOIN
首先设定一个我们要用的两个表
表A 表B
ID NAME ID CLASS
1 IBM 1 C1
2 SONY 3 C3
3 BMW 4 C4
1INNERJOIN:SELECT*FROMAINNERJOINBONA.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
3 BMW C3
对了 就是 两个表的ID都存在并相同 得到这两个表的组合表
2
LEFTJOIN:SELECT*FROMALEFTJOINBONA.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
2 SONY null
3 BMW C3
在Oracle join的用法中上面的相关操作可说是很复杂的。 如果还有方向感 就行 LEFT(左) 得到的是A(left语句的左边的表)的所有记录 而B表对应的记录没有的话也要补齐
3
RIGHTJOIN:SELECT*FROMARIGHTJOINBONA.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
3 BMW C3
4 null C4
对了RIGHT(右) 得到的是B(right语句的右边的表)的所有记录 而A表对应的记录没有的话也要补齐 (我也翻身了! 呵呵)
4
FULLOUTERJOIN:SELECT*FROMAFULLOUTERJOINBONA.ID=B.ID
得表 ID NAME CLASS
1 IBM C1
2 SONY null
3 BMW C3
4 null C4