常用连接
- 内连接(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