【605、mp可以做多表的联合查询吗】

您所在的位置:网站首页 querywrapper多表查询实现 【605、mp可以做多表的联合查询吗】

【605、mp可以做多表的联合查询吗】

2023-04-19 18:24| 来源: 网络整理| 查看: 265

是的,MyBatis-Plus(简称MP)可以进行多表的联合查询。

MP 提供了多种实现联表查询的方法,包括:

Wrapper 联表查询:通过 Wrapper、QueryWrapper、LambdaQueryWrapper、UpdateWrapper 等构建多表查询条件,实现联表查询。 Join 方法联表查询:通过 join 方法实现多表联查。MP 的 join 方法可以链式调用,支持多表连接查询。 实体注解联表查询:通过在实体类中添加 @TableName、@TableField 等注解,自动生成 SQL 语句进行联表查询。 自定义 SQL 联表查询:通过 @SelectProvider、@UpdateProvider、@InsertProvider 等注解,实现自定义的 SQL 语句进行联表查询。

其中,Wrapper 联表查询是 MP 最常用的方法之一。通过 Wrapper 等构建多表查询条件,可以实现复杂的联表查询,同时也支持动态生成查询条件,非常灵活。

例如,通过 Wrapper 实现两张表的联表查询:

Wrapper wrapper = new QueryWrapper(); wrapper.eq("user_id", 1) .nested(i -> i.eq("age", 20).or().eq("name", "Jack")) .inSql("dept_id", "select dept_id from dept where dept_name like '%IT%'") .orderByDesc("create_time"); List userList = userMapper.selectList(wrapper); 复制代码

上面的代码中,通过 QueryWrapper 构建联表查询条件,查询 user 表和 dept 表,查询条件包括:user_id 等于 1、age 等于 20 或 name 等于 "Jack"、dept_id 在子查询结果中、按照 create_time 降序排序。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3