估计很多人就像我一样,对什么外连接、内连接等等查询很纠结,特别还是我们在做一些项目的阶段,用的不是很多。例如mybatis直接生成了,大家可能和我一样都没看过,这就导致后面的很多查询优化等问题都有很难。下面分享我在学的几张图
mysql的分层结构
连接层--》服务层--》引擎层--》存储层
这就类似我们高中学的图形的包含的关系
最后两张图需要注意
在mysql中没有full outer join 主要在oracle中有
在mysql中的实现是:
全部查询: SELECT 8 FROM A LEFT JION B ON A.KRY = B.KEY
UNION
SELECT 字段 FROM A RIGHT JION B ON A.KRY = B.KEY
去除公共的部分:
SELECT 字段 FROM A LEFT JION B ON A.KRY = B.KEY WHERE B.KEY IS NULL
UNION
SELECT 字段 FROM A RIGHT JION B ON A.KRY = B.KEY WHERE A..KEY IS NULL