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);