如何使用mysql表連接

為什么使用表連接

  • 什么是表連接?

    • 如果數據來自多個表,那么可以采用鏈接查詢的方式來實現。因此表連接就是多個表連接合在一起實現查詢效果

  • 表連接的原理

    • 表連接采用的是笛卡爾乘積,稱之為橫向連接。

  • 笛卡爾乘積

    • 表連接的基本原理就是采用笛卡爾乘積。笛卡爾乘積是指將兩張表的所有數據相連,最后連接的結果數為兩張表數量的乘積。

  • 從上面圖示可以看出表聯接是將兩張表的數據相乘而得到的結果,第一張表的每條記錄都會和第二張表的所有記錄相連。
    在數據庫中將多表相連需要使用JOIN關鍵字。
    標準結構

    如何使用mysql表連接

  • 笛卡爾乘積出來的結果數量太多,其中有不少數據是沒用的。因為我們在建表時為了表示他們的關系,都會建立外鍵來確定關系,所以在表聯接時就要根據其外鍵來過濾沒用的數據。使用ON關鍵字來確定其是否匹配。
    完整結構

    如何使用mysql表連接
mysql中表連接分為:內連接,外鏈接,都是橫向連接 還有oracle的縱向連接

?–使用表連接 ?— 內連接 第一種語法 inner join ? ? inner可以省略

  1. select * from 主表名 as 主別名 join 連接表名 as 連接的別名 on 主表名.列名=連接表名.列名 where 條件

— 外鏈接:

定義:外聯接是指不管有沒有匹配,被定義了外聯接的表數據都要出現在結果中。比如左外聯接,那么在JOIN左邊的表就被定義為外聯接,那么此表中所有數據都會出現在查詢結果中。右外聯接則是JOIN右邊的表為外聯接表。全外聯接就是JOIN左右兩張表都是外聯接表。

  • 左外聯接
    用法:LEFT OUTER JOIN 或 LEFT JOIN

  • 右外聯接
    用法:RIGHT OUTER JOIN 或 RIGHT JOIN

  • 全外聯接
    用法:FULL OUTER JOIN 或 FULL JOIN

  • 注意:MYSQL不支持全外聯接

? –自連接

定義:自聯接其實就是內聯接或外聯接的一種特例,同樣可以使用INNER JOIN 或 OUTER JOIN。
自聯接所聯接的表是來自于同一張表。

  • 舉例:一張存放員工信息的表,每個員工有個直屬領導。當然直屬領導也是員工,所以員工信息和他們的領導信息都再一張表中。下面是表結構:
    如何使用mysql表連接

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享