【Mybatis-plus-join】 joinAnd() join添加条件
【Mybatis-plus-join】 joinAnd() join添加条件
Metadata
title: 【Mybatis-plus-join】 joinAnd() join添加条件
date: 2023-01-22 19:23
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis-plus-join
categories:
- Mybatis-plus-join
keywords:
- Mybatis-plus-join
description: 【Mybatis-plus-join】 joinAnd() join添加条件
【Mybatis-plus-join】 joinAnd() join添加条件
需要注意啊,这个最后一个下标是指的第几个join,因为有时候会出现多个连接,附表连接主表,附表的附表连接附表这样子
/*
相信有很多情况需要限制join的表的限制条件那么就需要
joinAnd(SFunction<T, Object> field, Object val, int index)
*/
JoinLambdaWrapper<Users> wrapper = new JoinLambdaWrapper<>(Users.class);
wrapper.leftJoin(UsersAge.class,UsersAge::getId,Users::getAgeId)
.joinAnd(UsersAge::getId,1,0) // 需要注意啊,这个最后一个下标是指的第几个join,因为有时候会出现多个连接,附表连接主表,附表的附表连接附表这样子
.eq(UserAge::getAgeName,"95")
.selectAs((cb) -> {
cb.add(UserAge::getAgeName,"user_age_name")
.add(UserAge::getAgeDoc)
.add("mp永远滴神","mpnb");
}).end();
// 执行查询
usersService.joinList(wrapper,UsersVo.class);
// 执行SQL
select
users.user_id,
users.user_name,
users_age.age_name as user_age_name,
users_age.age_doc,
'mp永远滴神' as mpnb
from users users
left join users_age users_age on users_age.id = users.age_id and users_age.id = 1
where (
users_age.age_name = '95'
1.3.4版本后写法
Joins.of(Users.class)
.masterLogicDelete(false)
.pushLeftJoin(UsersVo::getUsersAge, UsersAge.class)
.joinAnd(0, w -> w.eq(UsersAge::getId, Users::getAgeId)
.ne(UsersAge::getId, 10))
.isNotNull(UsersAge::getId).end().joinList(UsersVo.class)
SELECT
users.user_name,users.create_time,users.age_id,users.content_json,users.user_id, t1.age_doc as t1_ageDoc , t1.age_name as t1_ageName , t1.create_time as t1_createTime , t1.content_json_age as t1_contentJsonAge , t1.id as t1_id
FROM users as users
LEFT JOIN users_age as t1 ON t1.id = users.age_id and (t1.id = users.age_id AND t1.id <> 10) WHERE (t1.id IS NOT NULL)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 蝶梦庄生!
评论