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");
这样就可以实现了。
本文探讨了在使用Mybatis Plus的QueryWrapper构造exists查询时,如何处理SQL语句中的表别名。通过示例展示了即使不指定表别名,表名本身也可作为别名来引用字段,并提供了相应的QueryWrapper实现方式。

8575

被折叠的 条评论
为什么被折叠?



