數據庫兩表聯查、多表聯查,多重聯查


表連接查詢

【小編用的是Oracle數據庫,Oracle數據庫區分表名與字段名的大小寫,所以大家進行查詢的時候記得注意雙引號喲~】

有表
表名:AAA 字段: id name tag
表名:BBB 字段: id ban qq
表名:AABB字段: id area location
分類:
1.內連接 inner join
  select 列名 from 主表 inner join 從表
    on 主表和從表關系
  注意:
       (1)必須要有on語句
       (2)關系必須兩表中都成立
        主表和從表:
            特點:結果是兩表之間的公共數據
            公共數據就是說兩表中關系列的值要對應
        比如:

           SELECT * from  AAA INNER JOIN BBB ON AAA."id"=BBB."id"

          查詢顯示:


             [只顯示條件都成立的數據]
2.外連接 outer join
 a)左外連接 left outer join
  select 列名 from 主表 left outer join 從表
   on 關系 .....

SELECT * from  AAA LEFT JOIN BBB ON AAA."id"=BBB."id"

        查詢顯示:


          [左邊為主表,主表全部顯示,右邊為副表,右邊無符合數據時顯示null,不符合的數據不會顯示]
 b)右外連接 right outer join
  select 列名 from 從表 right outer join 主表
   on 關系 .....

SELECT * from  AAA RIGHT JOIN BBB ON AAA."id"=BBB."id"

       查詢顯示:

         [右邊為主表,主表全部顯示,左邊為副表,左邊無符合數據時顯示null,不符合的數據不會顯示]
 c)全外連接 full outer join
  select 列名 from 主表 full outer join 主表
   on 關系 .....

SELECT * from  AAA  full outer  JOIN BBB ON AAA."id"=BBB."id"

查詢顯示:

          [左邊為主表,右邊為副表,主表和副表全部顯示,右邊無符合數據時顯示null,左邊無符合數據時顯示null,符合條件的數據會顯示在一行]
 
3.交叉連接 cross join
  select 列名 from 主表 cross join 主表;

SELECT * from  AAA   cross  JOIN BBB 

查詢顯示:


[左邊為主表,右邊為副表,顯示的數據為乘積形式的數據。]
  交叉連接查詢不能帶on子語
  結果:兩表查詢結果的笛卡爾乘積
  左表有3行    右表有3行數
  結果:9行
附加:另一種連接查詢,將多個表用逗號隔開查詢

1.SELECT * from  AAA,BBB where AAA."id"=BBB."id"

[類似於內連接,只顯示條件都成立的數據]


2.SELECT * from  AAA , BBB ;--不帶where關系條件

[類似於交叉連接,左邊為主表,右邊為副表,顯示的數據為乘積形式的數據。]

3.SELECT * from  AAA INNER JOIN BBB ON AAA."id"=BBB."id" INNER JOIN AABB ON BBB."id"=AABB."id"
SELECT * from  AAA INNER JOIN BBB ON AAA."id"=BBB."id" LEFT  JOIN AABB ON BBB."id"=AABB."location"  

 SELECT * from  AAA RIGHT  JOIN BBB ON AAA."tag"=BBB."ban" right  JOIN AABB ON BBB."id"=AABB."id"

[可以無限連接,想必到這應該懂了吧?想怎么join就怎么join,需要滿足條件才顯示的則要滿足條件才顯示,左右連接需要補null的,則要補null。]

 還有就是:on 的時候可以寫多個條件,例如:

SELECT * from  AAA  full outer  JOIN BBB ON AAA."id"=BBB."id" and AAA."name"=BBB."ban" and AAA."tag"=BBB."qq"

覺得有用的朋友希望可以幫忙“贊”一下喲(贈人玫瑰手有余香),謝謝^_^


免責聲明!

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



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