常用連接
- 內連接(INNER Connect):兩個表都存在匹配時,纔會返回匹配行
- 外連接(LEFT/RIGHT JOIN):返回一個表的行,即使另一個沒有匹配
- 全連接(FULL JOIN):只要某一個表存在匹配就返回
內連接
- 將左邊和右表能夠關聯起來的數據連接後返回
- 類似於求兩個表的“交集”
- select A.id as a.id, B.id as b.id from A inner join B on a.id = b.id
外連接
- 左連接返回左表中所有記錄,即使右表中沒有匹配的記錄
- 右連接返回右表中所有記錄,即使左表中沒有匹配的記錄
- 沒有匹配的字段會設置成NULL
全連接
- 只要有一個表存在匹配,就返回行
- 類似於求兩個表的並集
- 但是mysql不支持,可以用left join,union,right join聯合使用來模擬
- select A.id as a.id, B.id as b.id from A left join B on a.id = b.id union select A.id as a.id, B.id as b.id from A right join B on a.id = b.id