1.使用exists方法的时候我们难免想要使用表的别名,但是直接用QueryWrapper来new出的条件对象并没有办法赋予表的别名,除非你把整个SQL语句写完,可以这样的话就违背了我们不想写SQL使用mybatis-plus的初衷,这个时候怎么办呢?
假如我们的数据库表里面有A、B两张表
然后我们执行以下的SQL语句

SELECT * FROM A WHERE 
EXISTS(SELECT 1 FROM B WHERE A.ID = B.AID)

结果我们发现上面的SQL语句是能够正常运行的,也就是说不指定别名的时候表的别名就是表的本身,好家伙把我们使用exists方法的难点一下子就解决了
2.然后我们就可以这样去使用它了

QueryWrapper<A> wrapper = new QueryWrapper<>();
wrapper.exists("SELECT 1 FROM B WHERE A.ID = B.AID");
List<A> list = this.mapper.selectList(wrapper);
Logo

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

更多推荐