連接查詢包括合並、內連接、外連接和交叉連接,如果涉及多表查詢,了解這些連接的特點很重要。 只有真正了解它們之間的區別,才能正確使用。 1、Union UNION 操作符用於合並兩個或多個 SELECT 語句的結果集。 UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重復行而派生出一個結果表。 當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。 注意:使用UNION時,兩張表查詢的結果有相同數量的列、列類型相似。 2、INNER JOIN(內連接) INNER JOIN(內連接),也成為自然連接 作用:根據兩個或多個表中的列之間的關系,從這些表中查詢數據。 注意: 內連接是從結果中刪除其他被連接表中沒有匹配行的所有行,所以內連接可能會丟失信息。 重點:內連接,只查匹配行。 3、外連接 與內連接相比,即使沒有匹配行,也會返回一個表的全集。 外連接分為三種:左外連接,右外連接,全外連接。對應SQL:LEFT/RIGHT/FULL OUTER JOIN。通常我們省略outer 這個關鍵字。寫成:LEFT/RIGHT/FULL JOIN。 重點:至少有一方保留全集,沒有匹配行用NULL代替。 1)LEFT OUTER JOIN,簡稱LEFT JOIN,左外連接(左連接) 結果集保留左表的所有行,但只包含第二個表與第一表匹配的行。第二個表相應的空行被放入NULL值。 4、CROSS JOIN(交叉連接) 交叉連接。交叉連接返回左表中的所有行,左表中的每一行與右表中的所有行組合。交叉連接也稱作笛卡爾積。 簡單查詢兩張表組合,這是求笛卡兒積,效率最低。