码迷,mamicode.com
首页 > 其他好文 > 详细

内连接与外连接

时间:2014-09-23 21:27:35      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:blog   http   ar   数据   sp   art   on   c   log   

     在oracle的SQL语句常用的连接有内连接(inner join),外连接(outer join)等,内连接又包括等值连接,非等值连接,自连接;而外连接又分为左连接和右连接。其中默认的是内连接的等值连接。

     为了方便我们创建两张最简易的表A、B,具体的表结构参看下面,来分析内连接与外连接的区别

bubuko.com,布布扣          bubuko.com,布布扣

                      图1                                                                      图2

 

两个表要做连接,必须要有连接字段,而在表A和表B中连接字段是Aid和Bnamid,下图说明了连接之间关系图3

bubuko.com,布布扣

                                                                  图3

    (1) 内连接:利用内连接(等值)就可获取蓝色的公共部分C,即图3中的数据集C,结果集为如下:

   

             bubuko.com,布布扣

                                                                   图4

 

   其实select * from A join B on A.Aid=B.Bnamid;等价于select * from A,B where A.Aid=B.Bnamid;        注:非等值连接主要的话是针对一个范围来查询数据,自连接主要就是把1张表堪称两张表来用                           (2)外连接:分为左外连接(left join)与右外连接(right join)             左外连接即公共显示的蓝色部分C1+显示黄色的记录集A1,显示语句等价于select * from A,B where A.Aid=B.Bnamid(+);       

 

            bubuko.com,布布扣

                                                                    图  5

 

右外连接即公共显示的蓝色部分C1+显示绿色的B1,显示语句等价于select * from A,B where A.Aid(+)=B.Bnamid;

          bubuko.com,布布扣

                                                                      图6

 

  表A和表B情况是相对的,以上实验都是A在左边的情况,其实A left join B与B right join A的情况的结果集是一样的。

 

 

http://blog.csdn.net/hellowheat/article/details/4207467

内连接与外连接

标签:blog   http   ar   数据   sp   art   on   c   log   

原文地址:http://www.cnblogs.com/mu-tou-man/p/3989163.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!