一篇文章搞懂MySQLl中7种JOIN联结
七种join模型
其中左外连接,右外连接,全外连接各有两种模型
创建表
我们创建两张表,部门表department和员工表employee,主键都为id
内连接
根据内连接特点,我们可以得出7条正确结果:根据部门表的id,一行一行的和员工表的部门id匹配,有结果就显示
左外连接(第一种情况)
我们可以看到,左外连接的特点是LEFT OUT左边的表的departmentId和右边的表的id一行一行的匹配,包括左表所有的行,右表没有记录就用null填充
右外连接(第一种情况)
我么可以看到,右外连接是将RIGHT JOIN右边的表department中的id列,一行一行的与employee表匹配,可以看到employee表中并没有5的departmentId,故此行用null填充
左外连接(第二种情况)
显示的结果是employee表独有的一行,对比第一种情况的左外连接,我们可以看到,当department表的id为null,查询的结果就是employee表的独有结果
右外连接(第二种情况)
根据左外连接的情况一样,我们可以得出右外连接的特殊结果
全外连接(第一种情况)
mysql不支持全外连接的写法,这个时候我们需要另一种写法,使用关键字union
我们同样可以得出一样的结论,其原理就是将内连接的结果加上左外连接和右外连接的结果
全外连接(第二种情况)
我们通过整合左外连接和右外连接的第二种情况,就可以得出两表特有的结果的集合