1.1 项目目录
![](https://i-blog.csdnimg.cn/blog_migrate/bdeb742be43930f06764432cdea64327.png)
1.2 什么是嵌套查询
嵌套查询就是将原来多表查询中的联合查询语句拆成单个表的查询,再使用mybatis的语法嵌套在一起。
案例实现
-- 需求:查询一个订单,与此同时查询出该订单所属的用户
# 1. 联合查询
select * from orders o left join user u on o.oid =u.id
#2. 嵌套查询
#2.1先查询订单
Select * from orders
#2.2 再根据订单uid外键,查询用户
select * from user where id = #{根据订单查询的oid}
2.3 最后使用mybatis,将以上二步嵌套起来
...
1.3 一对一嵌套查询
1.3.1 基本介绍
需求:查询一个订单,与此同时查询出该订单所属的用户
一对一查询语句
-- 先查询订单
Select * from orders;
-- 再根据订单oid外键,查询用户
select * from user where id = #{根据订单查询的oid}
1.3.2 代码实现
OrderMapper接口
// 1.查询所有的订单,与此同时还要查出每个订单所属的用户信息
List<Orders> findAllWithUser1();
OrderMapper.xml
<!--1.1 orderMap映射-->
<resultMap id="orderMap1" type="orders">
<id column="id" property="id"></id>
<result column="ordertime" property="ordertime"></result>
<result column="total" property="total"></result>
<result column="oid" property="oid"></result>
<association property="user" javaType="user" column="oid" select="cn.guardwhy.dao.UserMapper.findById"/>
</resultMap>
<!--1.2 一对一嵌套查询-->
<select id="findAllWithUser1" resultMap="orderMap1">
select * from orders
</select>
UserMapper接口