Mybatis多表实战案例(二)

简介: Mybatis多表实战案例

5、案例如下:

/*查询每个工种有奖金的员工的最高工资>12000的工种编号和最高工资

* 思路:该需求用到分组查询

* 1、先查询每个工种有奖金的员工的最高工资

* 2、根据1的结果继续筛选,选择最高工资>12000;

* */

<select id="queryByGroup" resultType="map">
        select job_id 工种编号,max(salary) 最高工资
        from myemployees.employees
        where commission_pct is not null
        GROUP BY job_id
       having 最高工资 > 12000
    </select>


结果:

6、案例如下:


/*查询员工姓名、部门名和所在城市,城市名以s开头

* 思路:员工名出现在员工表employees中,部门名出现在departments表中,而城市名出现在       locations表中

* 此案例涉及到了三表查询,根据employees表的外键department_id连接到departments表,然后根据departments表的

* 外键location_id连接到locations表

* */

<select id="queryMoreTables" resultType="map">
        select concat(first_name,' ',last_name) 姓名,department_name 部门名,city 城市名
        from myemployees.employees e,myemployees.departments d,myemployees.locations l
        where e.department_id=d.department_id and d.location_id=l.location_id and
              city like 's%'
        order by department_name desc
    </select>

结果:

7、案例如下:

/*案例:查询所有的部门里面员工个数大于3的部门名以及具体的员工数量,查询结果按员工数量降序排序,

* 这里用内连接(自然连接或普通连接)去实现,内连接:就是两张表只显示符合连接条件的行(可以理解为取两张表的交集)

* 所以内连接可能会丢失信息

* */

<select id="queryInner" resultType="map">
        SELECT department_name,COUNT(*)
        FROM myemployees.departments d
        inner join myemployees.employees e
        on d.department_id=e.department_id
        GROUP BY department_name
        HAVING COUNT(*)>3
        ORDER BY  COUNT(*) desc;
    </select>

结果:

8、 案例如下:


/*查询姓名中包含字符K的员工的名字及其上级的名字

因为员工表中既包含打工仔和打工仔的boss,所以,可以通过员工的manager_id找到employee_id,进          而找到boss的name

* 当表中的某一个字段和这张表中另外字段相关时,可以用自连接,所以此查询使用自连接

* */

<select id="querySelfJoin" resultType="map">
        SELECT e.first_name 员工名,m.first_name 老板名
        from myemployees.employees e
                 join myemployees.employees m
                      on m.employee_id=e.manager_id
        WHERE e.first_name like '%k%';
    </select>

结果:

相关文章
|
2月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
22 1
|
2月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
35 1
|
2月前
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
18 1
|
2月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
28 1
|
2月前
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
24 2
|
2月前
|
SQL JavaScript Java
springboot+springm vc+mybatis实现增删改查案例!
springboot+springm vc+mybatis实现增删改查案例!
27 0
|
2月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
18 1
|
2月前
|
Java 数据库连接 mybatis
mybatis简单案例源码详细【注释全面】——实体层(User.java)
mybatis简单案例源码详细【注释全面】——实体层(User.java)
14 0
|
2月前
|
SQL Java 数据库连接
Mybatis技术专题(3)MybatisPlus自带强大功能之多租户插件实现原理和实战分析
Mybatis技术专题(3)MybatisPlus自带强大功能之多租户插件实现原理和实战分析
77 1
|
2月前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
20 1