连表查询如何区分条件

来源:4-2 分页查询

qq_慕丝3367668

2020-04-22 10:23

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

写回答 关注

4回答

  • 老猿
    2020-04-23 08:49:48

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

    老猿

    连表的语句你可以正常写,最后使用${ew.customSqlSegment}

    2020-04-23 08:51:34

    共 1 条回复 >

  • qq_慕丝3367668
    2020-04-23 10:40:03

    老师这么写不对么

    老猿 回复qq_慕丝3...

    哦哦,找到答案了就好。

    2020-04-28 13:10:39

    共 2 条回复 >

  • qq_慕丝3367668
    2020-04-23 10:39:39

    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>


  • qq_慕丝3367668
    2020-04-22 11:49:12

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

    请问用这种构造器的形式
    http://img2.mukewang.com/5e9fbeb60001b65806830071.jpg

MyBatis-Plus入门

MyBatis-Plus框架入门必学课程!

56140 学习 · 381 问题

查看课程

相似问题