问答详情
源自:4-2 分页查询

连表查询如何区分条件

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

提问者:qq_慕丝3367668 2020-04-22 10:23

个回答

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

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

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

    老师这么写不对么

  • 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