为了账号安全,请及时绑定邮箱和手机立即绑定

连表查询如何区分条件

老师 LambdaQueryWrapper构造器如何写两个T的条件构造啊,比如我连表之后 A表人员表 条件是姓名的模糊查询,连表B部门表,B表的某一字段(比如行政部门or智能部门)这种该如何写啊

正在回答

4 回答

两个表连表查询的话,使用LambdaQueryWrapper可能会有问题,如果两个表中有同名字段,LambdaQueryWrapper是无法使用别名的。如果使用普通的QueryWrapper,你是可以指定别名的,例如:qw.eq("e.name","ww")

0 回复 有任何疑惑可以回复我~
#1

老猿

连表的语句你可以正常写,最后使用${ew.customSqlSegment}
2020-04-23 回复 有任何疑惑可以回复我~

老师这么写不对么

0 回复 有任何疑惑可以回复我~
#1

qq_慕丝3367668 提问者

感谢老师 我在后面的课程看到了老师关于这类问题的回答。
2020-04-23 回复 有任何疑惑可以回复我~
#2

老猿 回复 qq_慕丝3367668 提问者

哦哦,找到答案了就好。
2020-04-28 回复 有任何疑惑可以回复我~

QueryWrapper<Map<String, Object>> eq = new QueryWrapper<Map<String,Object>>();

eq.like("a.name","王").eq("b.labelname","业务骨干");

Page<Map<String, Object>> page = new Page<Map<String, Object>>(2, 15);

// Page<Userinfo> page = new Page<Userinfo>(2, 15,false); //洞听实例

IPage<Map<String, Object>> iPage = UserinfoMapper.selectLeftjoin(page, eq);

System.out.println("总页数:"+iPage.getPages());

System.out.println("总记录数:"+iPage.getTotal());

List<Map<String, Object>> selectList = iPage.getRecords();

selectList.forEach(System.out::println);

IPage<Map<String, Object>> selectLeftjoin(Page<Map<String, Object>> page, QueryWrapper<Map<String, Object>> eq);

<select id="selectLeftjoin"  resultType="java.util.HashMap">

select * from userinfo a left join label b ${ew.customSqlSegment}

</select>


0 回复 有任何疑惑可以回复我~

用xml 或者select注解自定义sql1我知道可以实现 

请问用这种构造器的形式
http://img1.sycdn.imooc.com//5e9fbeb60001b65806830071.jpg

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

连表查询如何区分条件

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信