Mybatis plus插件使用exists查询语句时如何使用表的别名

1、mysql sql语句:

select * from t_app_con_site t where exists(select id from t_app_ancp where site_id = t.id)

上面的SQL语句中有个t,在exists子句中可以引用,那如何用Mybatis Plus 的 QueryWrapper 构建呢?

2、使用mybatis plus querywrapper构建:

首先想个问题, 我们将sql改造一下,如下所示:

select * from `t_app_con_site` where exists(select id from `t_app_ancp` where site_id = `t_app_con_site`.id)

上面的sql是能正常运行的,也就是说在不指定表别名时,表的别名是表名本身,即可以通过表名本身引用表字段。因queryWrapper可以写成以下形式:

QueryWrapper<ConSite> queryWrapper = new QueryWrapper<>();
queryWrapper.exist("select * from t_app_aucp where site_id = t_app_con_site.id");

这样就可以实现了。

猜你喜欢

转载自blog.csdn.net/zxstrive/article/details/108599953