CROSS JOIN交叉連接。是一種沒有任何限制條件的連接方式,結果為笛卡爾積。SQL語法如下:
上面SQL等同於:
INNER JOIN(默認是JOIN)內連接。在表中存在至少一個匹配時返回行,可以理解為兩張表中同時符合某種條件的行的組合。內連接還分為等值連接、不等連接和自連接。SQL語法如下:
等值連接:使用“=”作為連接條件
不等連接:沒有使用“=”作為連接條件
自連接:自己連接自己,即連接的表只有一張
LEFT JOIN左連接。外連接的一種,從左表(table1)返回所有的行,即使右表(table2)中沒有匹配,如果右表中沒有匹配,則結果為 NULL。SQL語法如下:
RIGHT JOIN右連接。外連接的一種,從右表(table2)返回所有的行,即使左表(table1)中沒有匹配,如果左表中沒有匹配,則結果為 NULL。SQL語法如下:
FULL JOIN全連接。外連接的一種,只要左表(table1)和右表(table2)其中一個表中存在匹配,則返回行,集合了 LEFT JOIN 和 RIGHT JOIN 的結果。SQL語法如下:
其中,MySQL不支持FULL JOIN,可使用LEFT JOIN 、UNION、RIGHT JOIN 結合實現FULL JOIN的查詢,示例:
UNION聯合查詢(去重)。用於合并兩個或多個 SELECT 語句的結果集。UNION 內部的每個 SELECT 語句必須擁有相同數量和相同順序的列,列也必須擁有相似的數據類型。SQL語法如下:
注:UNION查詢的結果中,不存在重複的值。 UNION ALL聯合查詢(不去重)。用於合并兩個或多個 SELECT 語句的結果集。UNION 結果集中的列名總是等於 UNION 中第一個 SELECT 語句中的列名。SQL語法如下:
或者:
注:
UNION ALL查詢的結果中,允許存在重複的值。
使用UNION或者UNION ALL時,只能在最後一個SELECT語句使用ORDER BY命令。
CROSS JOIN交叉連接。是一種沒有任何限制條件的連接方式,結果為笛卡爾積。SQL語法如下:
上面SQL等同於:
INNER JOIN(默認是JOIN)內連接。在表中存在至少一個匹配時返回行,可以理解為兩張表中同時符合某種條件的行的組合。內連接還分為等值連接、不等連接和自連接。SQL語法如下:
等值連接:使用“=”作為連接條件
不等連接:沒有使用“=”作為連接條件
自連接:自己連接自己,即連接的表只有一張
LEFT JOIN左連接。外連接的一種,從左表(table1)返回所有的行,即使右表(table2)中沒有匹配,如果右表中沒有匹配,則結果為 NULL。SQL語法如下:
RIGHT JOIN右連接。外連接的一種,從右表(table2)返回所有的行,即使左表(table1)中沒有匹配,如果左表中沒有匹配,則結果為 NULL。SQL語法如下:
FULL JOIN全連接。外連接的一種,只要左表(table1)和右表(table2)其中一個表中存在匹配,則返回行,集合了 LEFT JOIN 和 RIGHT JOIN 的結果。SQL語法如下:
其中,MySQL不支持FULL JOIN,可使用LEFT JOIN 、UNION、RIGHT JOIN 結合實現FULL JOIN的查詢,示例:
UNION聯合查詢(去重)。用於合并兩個或多個 SELECT 語句的結果集。UNION 內部的每個 SELECT 語句必須擁有相同數量和相同順序的列,列也必須擁有相似的數據類型。SQL語法如下:
注:UNION查詢的結果中,不存在重複的值。 UNION ALL聯合查詢(不去重)。用於合并兩個或多個 SELECT 語句的結果集。UNION 結果集中的列名總是等於 UNION 中第一個 SELECT 語句中的列名。SQL語法如下:
或者:
注:
UNION ALL查詢的結果中,允許存在重複的值。
使用UNION或者UNION ALL時,只能在最後一個SELECT語句使用ORDER BY命令。