1.mysql數據庫的多表連接


 1.測試環境說明

   (1)mysql:mysql-5.5.53-winx64;          

   (2)可視化操作工具:Navicat_V11.0.10_XiTongZhiJia;

2.建表

     數據表有三user ,jme,sms

                                           表1_user

            

                                            表2_jme

            

                                              表3_sms

            

3.測試

   (1)自連接,顧名思義,自己和自己多次連接,最終得到自己需要的列。(不做過多討論)

   (2)left join 或者left outer join 

           select * from user a left outer join sms  b on a.id = b.id

           select * from user a left  join sms  b on a.id = b.id

           

   (3)right join 或者rigth outer join

            select * from user a right outer join sms  b on a.id = b.id

            select * from user a right join sms  b on a.id = b.id

           

    (4)full outer join或者full join

            注意:mysql不支持這種連接的寫法!!

            練習:select * from user,jme,sms

            結果:從左往右一行一行的依次連接

             

   (5)交叉連接 cross join 

                 select * from user a cross join jme b     笛卡爾積

             

 

 4.概念

    (1)內連接——最常用 (INNER JOIN )
             定義:僅將兩個表中滿足連接條件的行組合起來作為結果集。

    (2)外連接 
             左(外)連接 
                    定義:在內連接的基礎上,還包含左表中所有不符合條件的數據行,並在其中的右表列填寫NULL 
             關鍵字:LEFT JOIN     

             右(外)連接 
                   
定義:在內連接的基礎上,還包含右表中所有不符合條件的數據行,並在其中的左表列填寫NULL 
             關鍵字:RIGHT JOIN 
      (3)完全連接 
                    定義:
在內連接的基礎上,還包含兩個表中所有不符合條件的數據行,並在其中的左表、和右表列填寫NULL 
              關鍵字:FULL JOIN

       (4)交叉連接 
                       定義:
將兩個表的所有行進行組合,連接后的行數為兩個表的乘積數。(笛卡爾積) 
               關鍵詞:CROSS JOIN 

        注意:完全連接和交叉連接的區別。主要體現在空行,交叉連接沒有條件限制。
    

 


免責聲明!

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



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