Oracle SQL——inner jion;left join;right join的區別和使用場景


背景

  • 在一次面試的時候,面試官讓我說一下這三者的使用場景和區別,當時瞬間懵逼,哈哈。回來趕快看一看,記下來。

詳解

  • inner join
    • 等值查詢:返回兩張表中,聯結字段值相等的組合記錄
    • 舉例:所有學生參加考試,學生考試結果查詢
      • 表如下
        表Student(學生表)記錄如下:
        t_id   name       
        1     龍
        2     情
        3     風
        4     月
        5     度
        
        表Score(分數表)記錄如下:
        c_id   num    t_id
        1     50      1
        2     88      2
        3     90      3
        4     62      4
        5     0       5
      • 查詢語句:select s.t_id,s.name,c.num from Student s inner join Score c on s.t_id=c.t_id;
      • 查詢結果
        t_id        name        num
        1       龍            50
        2       情            88
        3       風            90
        4       月            62
        5       度            0
  • left join
    • 左外關聯查詢:返回包括左表中的所有記錄和右表中聯結字段有關的組合記錄。如果左表中數據多於右表,查詢結果中右表的數據為null。
    • 舉例:一個學生沒有參加考試,查詢考試結果
      • 表如下
        表Student(學生表)記錄如下:
        t_id   name       
        1     龍
        2     情
        3     風
        4     月 5     度
        表Score(分數表)記錄如下:
        c_id   num t_id
        1     50 1
        2     88 2
        3     90 3
        4     62 4

         

      • 查詢語句:select s.t_id,s.name,c.num from Student s left join Score c on s.t_id=c.t_id;
      • 查詢結果
        t_id        name        num
        1       龍            50
        2       情            88
        3       風            90
        4       月            62
        5       度            null
  • right join
    • 右外關聯查詢:返回包括右表中的所有記錄和左表中聯結字段相等的組合記錄。如果右表中數據多於左表,查詢結果中左表的數據為null。
    • 舉例
      • 表如下
        表Student(學生表)記錄如下:
        t_id   name       
        1     龍
        2     情
        3     風
        
        表Score(分數表)記錄如下:
        c_id   num    t_id
        1     50      1
        2     88      2
        3     90      3
        4     62      4
      • 查詢語句:select s.t_id,s.name,c.num from Student s rightjoin Score c on s.t_id=c.t_id;
      • 查詢結果如下
        t_id        name        num
        1       龍            50
        2       情            88
        3       風            90
        null    null          62


免責聲明!

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



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