轉:SQL的內串連與外串連

來源:互聯網
上載者:User

標籤:blog   http   os   ar   資料   div   sp   art   on   

參考:http://www.cuiyongjian.com/post-130.html

在oracle的SQL語句常用的串連有內串連(inner join),外串連(outer join)等,內串連又包括等值串連,非等值串連,自串連;而外串連又分為左串連和右串連。其中預設的是內串連的等值串連。

 為了方便我們建立兩張最簡易的表A、B,具體的表結構參看下面,來分析內串連與外串連的區別

         

                     

                 圖1                                         

                            

              圖2

兩個表要做串連,必須要有串連欄位,而在表A和表B中串連欄位是Aid和Bnamid,說明了串連之間關係圖3

 

                    

                                             

                                               圖3

    (1) 內串連:利用內串連(等值)就可擷取藍色的公用部分C,即圖3中的資料集C,結果集為如下:

   

         

   

                                          圖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(+);       

           

                                                                   

                                    圖  5

右外串連即公用顯示的藍色部分C1+顯示綠色的B1,顯示語句等價於select * from A,B where A.Aid(+)=B.Bnamid;

          

                                    

                                          圖6

  表A和表B情況是相對的,以上實驗都是A在左邊的情況,其實A left join B與B right join A的情況的結果集是一樣的。

轉:SQL的內串連與外串連

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.