码迷,mamicode.com
首页 > 编程语言 > 详细

join的一对多,去除重复,排序优先的group方法

时间:2015-08-25 23:21:57      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

想将问题列表按照最新回答来排列。但问题和回答是分拆在两张表来存放的。
所以,要完成上述需求,需从主表“问题”取显示数据,但是得按照次表(回答)的更新日期来排序。

用join来做,始终无法去除重复,
折腾了两天,最后还是必须得用groupby(影响性能的东东)。


 

去除了重复,但是排序又不正确。   

   MySQL对语句的处理方式是: 先群组,群组后再排序,但是我现在想排序后再群组该如何解决呢?

$sql = "SELECT ask.* FROM ly_ask JOIN `answer` ON ask.id=answer.`aid` GROUP BY answer.aid ORDER BY max(answer.dateline) DESC LIMIT 15;";


SELECT ly_ask.* FROM ask, `answer` WHERE ask.id=answer.`aid` GROUP BY answer.aid ORDER BY max(answer.dateline) DESC LIMIT 15;

 

关于from多表 和 join 性能:

执行时的区别不大,但join能比较清楚告诉阅读者是哪些表进行了关联,以及关联的字段是什么。where就要读者自己去看了。

对于SQL解释器就差别不大了。

但是SQL规格推荐是用join的。

join的一对多,去除重复,排序优先的group方法

标签:

原文地址:http://www.cnblogs.com/luowei/p/4758710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!