在MySQL中,連接(JOIN)是將兩個(gè)或多個(gè)表中的行組合成單個(gè)結(jié)果集的操作。JOIN操作的兩種常用語法是內(nèi)連接和外連接。
內(nèi)連接(INNER JOIN)
內(nèi)連接是指只返回兩個(gè)表中完全匹配的行。在內(nèi)連接語法中,使用JOIN或INNER JOIN關(guān)鍵字來指定要連接的表,使用ON關(guān)鍵字來指定連接條件。
SELECT * FROM table1 JOIN table2 ON table1.column_name = table2.column_name
在這個(gè)例子中,表table1和表table2通過column_name列進(jìn)行匹配,只有當(dāng)兩個(gè)表中的列完全匹配時(shí),才返回結(jié)果。
左外連接(LEFT JOIN)
左外連接(LEFT JOIN)是指返回左邊表中的所有行以及右邊表中與之匹配的行,如果左邊表中的行沒有匹配的行,則返回NULL值。在左外連接語法中,使用LEFT JOIN關(guān)鍵字來指定要連接的表,使用ON關(guān)鍵字來指定連接條件。
SELECT * FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name
在這個(gè)例子中,表table1中的所有行將始終返回,而對(duì)于與表table2中不匹配的行,將返回null值。
右外連接(RIGHT JOIN)
右外連接(RIGHT JOIN)是指返回右邊表中的所有行以及左邊表中與之匹配的行,如果右邊表中的行沒有匹配的行,則返回NULL值。在右外連接語法中,使用RIGHT JOIN關(guān)鍵字來指定要連接的表,使用ON關(guān)鍵字來指定連接條件。
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name
在這個(gè)例子中,表table2中的所有行將始終返回,而對(duì)于與表table1中不匹配的行,將返回null值。
全外連接(FULL OUTER JOIN)
全外連接(FULL OUTER JOIN)是指返回左邊表和右邊表中的所有行,如果兩個(gè)表中沒有匹配的行,則返回NULL值。在全外連接語法中,使用FULL OUTER JOIN或FULL JOIN關(guān)鍵字來指定要連接的表,使用ON關(guān)鍵字來指定連接條件。
SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name
在這個(gè)例子中,表table1和表table2中的所有行將返回,如果一個(gè)表中沒有匹配的行,則返回null值。