1)整体说明
1> 所谓连接,按字面理解就是将表拼在一起,当做一张表使用
2> 内连接:顾名思义,也就是两张表的重叠部分(即青色部分)都满足才行
3> 左外连接:也就是将左边的表也连接起来,结果就是所有左边的数据加上满足重叠部分条件的右边部分
4> 右外连接:右边所有表的数据,加上满足重叠部分条件的左边的数据
5> join:后面跟要拼在一起的那张表 on:后面跟两张表关联的地方
2)测试
t_department表:
t_employee表:
t_employee表通过departmentId与表t_department进行多对一关联
1> 内连接
SELECT *
FROM t_department d
JOIN t_employee e
ON e.departmentId = d.id
结果为:
实际上就是两张表中只要满足中间部分条件的数据
等效sql为:
SELECT *
FROM t_department d ,t_employee e
WHERE e.departmentId = d.id
2> 左外连接
SELECT *
FROM t_department d
LEFT JOIN t_employee e
ON e.departmentId = d.id
结果为:
也就是左边表的数据全都要,右边表只要满足中间部分条件的数据
3> 右外连接
SELECT *
FROM t_department d
RIGHT JOIN t_employee e
ON e.departmentId = d.id
结果为:
实际上就是右边表全部都要,左边只要满足中间部分条件的