标签:
想将问题列表按照最新回答来排列。但问题和回答是分拆在两张表来存放的。
所以,要完成上述需求,需从主表“问题”取显示数据,但是得按照次表(回答)的更新日期来排序。
用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的。
标签:
原文地址:http://www.cnblogs.com/luowei/p/4758710.html