full join 是連接操作符,返回兩個表中的所有行,包括不匹配行,不匹配行使用 null 填充缺失值。使用場景:檢索兩表所有行,維護表關系,查找不匹配行。語法:select * from table1 full join table2 on table1.column = table2.column。
MySQL FULL JOIN 用法
問題:什么是 FULL JOIN?
回答: FULL JOIN 是一種連接操作符,它返回兩個表中所有匹配的行以及不匹配的行。換句話說,它返回笛卡爾積,并用 NULL 值填充缺失的行。
用法:
語法如下:
SELECT * FROM table1 FULL JOIN table2 ON table1.column = table2.column;
登錄后復制
特點:
返回兩個表中所有行,包括不匹配的行。
對于不匹配的行,缺失的列值將被填充為 NULL。
FULL JOIN 是最全面的連接類型,因為它保證返回所有行。
何時使用:
FULL JOIN 通常用于以下情況:
當需要檢索兩個表中所有行時,即使存在不匹配。
當???????維護表之間的關系時,即使這些關系并不總是顯式定義。
當需要查找不匹配的行時,例如查找在另一個表中沒有記錄的記錄。
示例:
假設我們有兩個表:
table1: +----+--------+ | id | name | +----+--------+ | 1 | John | | 2 | Mary | | 3 | Bob | +----+--------+ table2: +----+--------+ | id | address | +----+--------+ | 1 | 123 Main St | | 2 | 456 Elm St | | 4 | 789 Oak St | +----+--------+
登錄后復制
執行以下 FULL JOIN 查詢:
SELECT * FROM table1 FULL JOIN table2 ON table1.id = table2.id;
登錄后復制
結果:
+----+--------+----+--------+ | id | name | id | address | +----+--------+----+--------+ | 1 | John | 1 | 123 Main St | | 2 | Mary | 2 | 456 Elm St | | 3 | Bob | NULL | NULL | | NULL | NULL | 4 | 789 Oak St | +----+--------+----+--------+
登錄后復制
結果集包含兩個表的所有行,包括不匹配行(id=3 和 id=4)。對于不匹配的行,address 列填充為 NULL。