mybatis怎么实现 FULL JOIN?

Posted Jeff~李

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis怎么实现 FULL JOIN?相关的知识,希望对你有一定的参考价值。

问题

今天写查询的时候,遇到了一个难题,两个查询出来的表,可能左边的表里有这个类型的数据,右表里面没有,但是我也要把它查出来。右表有的,左表没有的也要显示出来。

经过我的一番探索,找了, FULL JOIN 全连接。sql中很简单,有关键字,但是mybatis中,没有这个关键字

 那么我们怎么实现呢,肯定是可以实现的。

方法

先做左连接,然后右连接  然后UNION 合并。就能解决了。

select * from A left join B on A.id = B.id (where 条件)
union
select * from A right join B on A.id = B.id (where条件);

弊端 

这样做有一个弊端,查询语句会很长,执行效率会低,而且都是重复的查询。

目前我不知道有什么更好的方法代替。

欢迎大家在下面评论,多多指教。

 

以上是关于mybatis怎么实现 FULL JOIN?的主要内容,如果未能解决你的问题,请参考以下文章

Left join去重

mysql实现full join

oracle的full outer join如何排除掉空值

关于full join 语句的性能问题 跪求大虾帮忙解决.

mysql的几种join 及 full join 问题

oracle的full join关联的表限制条件在on后面与限制在子查询的结果是不一样