inner join 、left join 、right join 和full join的区别

这是一篇转载文章,觉得图很好理解。最后发现有些小问题,做了一些改变。

参考链接为
1、inner join 、left join 、right join 和full join的区别

测试表:

EMP表
EMP表
SAL表
 SAL表

left join :结果左边表格全部行都显示,右边表格判断列与左边一致才有数据。

select * from EMP Left join SAL on EMP.ENAME = SAL.ENAME;

left join结果表
left join

right join:结果右边表格全部行都显示,左边表格判断列与右边表格一致才有数据

Select * from EMP Right join SAL on EMP.ENAME = SAL.ENAME;
right join结果表
right join
inner join:左右表格判断列一致才有数据

SELECT * FROM EMP inner join SAL on EMP.ENAME = SAL.ENAME;

inner join结果表
inner join
full join :左右表格的行全部都有,左右表格判断一致的在同一行,不一致的单独一行。

原作者是这样写的:SELECT * FROM EMP full join SAL on EMP.ENAME = SAL.ENAME;
full join
但是我没成功:
在这里插入图片描述
然后查找了一下:
发现是mysql数据库不支持full join

-----------------------------------------SECOND ARTICLE***-----------------------------------------

受这篇文章的启发:
2、SQL_SQL实现FULL JOIN

不去重:
union on在这里插入图片描述
去重:
union在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐