sql多表連接查詢


1.交叉連接

         返回兩個表的笛卡爾積:select * from A,B

         比如A的id有{1,2,3},B的aid有{2,3,4},得到的數據:
         id .....aid.....
         1         2
         1         3
         1         4
         2         2
         ....      ....
         3         3
         3         4

2.內連接--inner join(inner可以省略)

  返回兩個表的交集:

    2.1隱式內連接(看不到join的內連接)

         就是加了條件的交叉連接:select * from A,B where A.id = B.aid

         比如A的id有{1,2,3},B的aid有{2,3,4},得到的數據:
         id........A表數據(不含id)........aid........B表數據(不含aid)
         2               不為空                  2              不為空  
         3               不為空                  3              不為空

    2.2顯式內連接

         (1).select *from A inner join B on A.id = B.aid-----------得到的數據和隱式內連接一樣
         (2).select *from A inner join B using (id)----------當B表中的外鍵名等於A表的主鍵名時使用,查詢結果只有一個id字段的值

         比如A的id有{1,2,3},B的id有{2,3,4},得到的數據:
         id........A表數據(不含id)........B表數據(不含aid)
         2               不為空                      不為空  
         3               不為空                      不為空

3.外連接

         返回兩個表的並集

    3.1左外連接left outer join(outer 省略)

         select *from A left outer join B on A.id = B.aid     
         返回A和B的並集,比如A的id有{1,2,3},B的oid有{2,3,4},返回的是{1,2,3},id為1的記錄中B表信息為空
         id........A表數據(不含id)........aid........B表數據(不含aid)
         1               不為空                  空                空
         2               不為空                   2              不為空  
         3               不為空                   3              不為空

    3.2右外連接right outer join(outer 省略)

         select *from A right outer join B on A.id = B.aid   
         返回A和B的並集,比如A的id有{1,2,3},B的oid有{2,3,4},返回的是{2,3,4},id為4的記錄中A表信息為空
         id........A表數據(不含id)........aid........B表數據(不含aid)
         2               不為空                   2              不為空  
         3               不為空                   3              不為空
        空                 空                        4              不為空


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM