今天使用mysql的关联查询进行分页的时候遇到了一个问题,以前在单表查询的时候没有遇到这一的情况。

场景还原:

一张评论表,一张回复表,属于一对多的关系。

刚开始使用下面这条sql语句进行查询。

SELECT *  FROM t_comment c  LEFT JOIN t_reply r ON(c.id = r.comment_id) where c.courseware_id = 5 limit 0,5;

但是查询的结果与我估计的结果不一致,我的预计结果是每页显示5条评论,但结果却少于5条评论(回复有五条,评论只有一条),分析原因得知因为评论表与回复表是一对多的关系,所以在对最后的结果集进行分页的时,可能得到几条数据都是同一条评论的。类似于下图

cid是评论id, rid是回复id.

解决思路:先对一边分页,再与另一张表进行关联查询。

改进后的sql:

SELECT   * FROM (select * from t_comment where courseware_id = 5 LIMIT 0, 5) c  LEFT JOIN t_reply r ON(c.id = r.comment_id) order by c.create_time;

先对一的一方进行过滤与分页,再与另一张表进行关联查询。

关于mysql关联查询然后进行分页的问题相关推荐

  1. Mysql 关联查询的优化 及 子查询优化

    Mysql 关联查询的优化 left join ①EXPLAIN SELECT * FROM class LEFT JOIN book ON class.card = book.card; ②如何优化 ...

  2. mysql关联查询操作表最新数据

    mysql关联查询操作表最新数据 mysql关联查询操作表最新数据的几种方式(max,order by)和性能分析,再数据量较多,关联ID存在索引的情况下建议使用方式二,速度更快.具体请看SQL及EX ...

  3. mysql 关联查询_响应时间长?MySQL查询优化教程来了!

    - 点击上方"爱数据学习社"关注我们吧! - 为什么查询会慢?--响应时间过长. 如果把查询看做是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要优化查询, ...

  4. mysql 关联查询_mysql数据库调优(二)

    第五.查询优化 1.查询慢的原因:网络因素.CPU.IO.上下文切换.系统调用.生成统计信息.锁等待时间等 2.优化数据库访问:查询性能地下的原因是访问的数据太多,某些查询不可避免的需要筛选大量的数据 ...

  5. MySQL—关联查询与子查询(从小白到大牛)

    前言  在大部分的数据库查询中,我们往往都不是进行简单的单表查询,而是多表查询.所以我们也必须学习SQL查询中的高级部分,如内连接.外连接和子查询,通过这些查询技术我们将能够解决项目中复杂的查询问题. ...

  6. mysql 关联查询_Mysql查询优化器,再也不会因为该什么时候建立索引发愁了

    优化器的作用: 我们知道,一条SQL语句,可以有很多执行方式,最后都返回相同的结果,而优化器的作用就是找到最好的执行计划. 一.RBO-基于规则的优化器(rule) 系统内置的一套硬编码规则,根据规则 ...

  7. MySQL关联查询时,我们为什么建议小表驱动大表?

    作者:留兰香丶 blog.csdn.net/codejas/article/details/78632883 有的时候我们在操作数据库时会将两个或多个数据表关联起来通过一些条件筛选数据,在关联表时我们 ...

  8. mysql 关联查询

    数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 1.inner join: 所有查询出的结果都是能够在连接的表中有对应记录: t_employee表 ...

  9. Mysql关联查询的几种方式(详解)

    在关系型数据库中,要进行多表查询,一般都会使用join连接.join连接的本质其实类似与集合的交并操作,Mysql实现关联查询常见的几种方式如下: 目录 1.左连接 2.右连接 3.内连接 4.全连接 ...

最新文章

  1. 重新开始 2011/11/25
  2. Java知多少(42)泛型通配符和类型参数的范围
  3. git查看每个版本间的差异
  4. c#垂直投影法_投影学
  5. CAS_SSO单点登录实例详细步骤(转)、Tomcat ssl(https) 配置
  6. c语言科学计数法_C入门:C语言中数据的储存(上)
  7. java 自定义事件_在Java中创建自定义事件
  8. tomcat下如何才能运行shtml文件?
  9. mysql——启动服务问题Found option without preceding group in config file
  10. SQL Server DTS
  11. 【Unity3D插件】Dialogue System for Unity插件分享《对话系统插件》
  12. 支付宝第三方应用代调用API关系说明
  13. 计算机win10搜不到wifi,Win10电脑搜不到5G无线wifi信号怎么办?
  14. 华为研发小仙女自述:我和开发的“撕逼”日常
  15. Win10部分引起鼠标卡顿间歇性失灵的原因
  16. 【软件测试】接口——基本测试流程
  17. python sys.path[0_Python的sys.path从哪里初始化?
  18. PPT设计制做关键提炼——Metro风格
  19. 元的符号在计算机怎么打出来,元的符号怎么打出来,各种特殊符号的输入方法...
  20. 联和创“芯”,广东联通积极打造物联网生态圈

热门文章

  1. sieve的objective-c实现
  2. 计算机学测,计算机教学测量与评价
  3. 抚顺学计算机到哪个学校好,抚顺有什么大学
  4. 学习笔记: 源码 multinomial_logistic_loss_layer.cpp 略晓
  5. LeetCode专题
  6. 人工智能在电力系统中的应用归纳有哪些
  7. Unity Pro 2020 2.7和2017共存
  8. android 华为手机导航栏适配
  9. 排名前30计算机专业院校推荐!
  10. 哪种蓝牙耳机戴着最舒服?佩戴最舒服的真无线蓝牙耳机