当前位置: 首页 > 编程笔记 >

mysql一对多关联查询分页错误问题的解决方法

霍永年
2023-03-14
本文向大家介绍mysql一对多关联查询分页错误问题的解决方法,包括了mysql一对多关联查询分页错误问题的解决方法的使用技巧和注意事项,需要的朋友参考一下

xml问价中查询数据中包含list,需要使用collection

<resultMap id="XX" type="com.XXX.XXXX">
    <id column="o_id" jdbcType="BIGINT" property="id" />
    <result column="o_user_id" jdbcType="BIGINT" property="userId" />
    ....
    <collection property="orderProductList" ofType="com.XXXXXX.XXXXX">
      <id column="p_id" jdbcType="BIGINT" property="id" />
      <result column="p_order_id" jdbcType="BIGINT" property="orderId" />
      ....
    </collection>
  </resultMap>

这样的查询系统封装的通用分页查询是不对的,所以需要自己sql中加入分页解决

<select id="XXX" resultMap="OrderListMap">
    SELECT
    you.nick_name,
    yo.id o_id,
    yo.user_id o_user_id
    FROM
    (
    SELECT * FROM
    youpin_order
    WHERE
    1 = 1
    <if test="status != null">
      and `status` = #{status}
    </if>
    <if test="page != null and limit != null">
    LIMIT #{page},
    #{limit}
    </if>
    ) yo
    LEFT JOIN XXX yop ON yo.id = yop.order_id
    LEFT JOIN XXXX you ON yo.user_id = you.id
  </select>

传入参数的时候需要计算

(offset - 1) * limit, limit

总结

以上所述是小编给大家介绍的mysql一对多关联查询分页错误问题的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍解决mybatis一对多关联查询多条数据只显示一条的问题,包括了解决mybatis一对多关联查询多条数据只显示一条的问题的使用技巧和注意事项,需要的朋友参考一下 一对多,如果多个表字段名相同,要记住使用别名,否则多条数据只显示一条 下列sql 补充知识:MyBatis使用resultMap解决列名和属性名不一致的问题 resultType可以指定将查询结果映射为pojo,但需要poj

  • 本文向大家介绍一对一、一对多的关联查询 ?相关面试题,主要包含被问及一对一、一对多的关联查询 ?时的应答技巧和注意事项,需要的朋友参考一下

  • 主要内容:示例,分步查询,单步查询在《 MyBatis一对一关联查询》一节中介绍了 MyBatis 如何处理一对一级联关系。但在实际生活中也有许多一对多级联关系,例如一个用户可以有多个订单,而一个订单只属于一个用户。同样,国家和城市也属于一对多级联关系。 在 MyBatis 中,通过 <resultMap> 元素的子元素 <collection> 处理一对多级联关系,collection 可以将关联查询的多条记录映射到一个 lis

  • 问题内容: 我有一个查询返回多行,而我想将条件设置为这些多行中的一个值的查询,所以基本上我希望子查询看起来像这样: where 返回多行。因此,如果这些行中的值为1,2,3,那么我想将id设置为1或2或3。 问题答案: 当子查询仅返回1值时可以使用。 当子查询返回的值大于1时,您将必须使用: 例如:

  • 本文向大家介绍PageHelper插件实现一对多查询时的分页问题,包括了PageHelper插件实现一对多查询时的分页问题的使用技巧和注意事项,需要的朋友参考一下 项目中经常会使用到一对多的查询场景,但是PageHelper对这种嵌套查询的支持不够,如果是一对多的列表查询,返回的分页结果是不对的 参考Github上的说明:https://github.com/pagehelper/Mybatis-

  • 主要内容:示例实际应用中,由于多对多的关系比较复杂,会增加理解和关联的复杂度,所以应用较少。MyBatis 没有实现多对多级联,推荐通过两个一对多级联替换多对多级联,以降低关系的复杂度,简化程序。 例如,一个订单可以有多种商品,一种商品可以对应多个订单,订单与商品就是多对多的级联关系。可以使用一个中间表(订单记录表)将多对多级联转换成两个一对多的关系。 示例 下面以订单和商品(实现“查询所有订单以及每个订单对应