【发布时间】:2012-03-01 07:09:24
【问题描述】:
是否可以使用子查询对 MySQL 查询的 GROUP BY 选择结果进行排序?我发现,对于我的大型数据集,子查询为我的查询增加了大量的加载时间。
这里有类似情况:how to sort order of LEFT JOIN in SQL query?
这是我的代码,但加载时间太长:
SELECT tags.contact_id, n.last
FROM tags
LEFT JOIN ( SELECT * FROM names ORDER BY timestamp DESC ) n
ON (n.contact_id=tags.contact_id)
WHERE tags.tag='$tag'
GROUP BY tags.contact_id
ORDER BY n.last ASC;
我可以通过带有表名的简单联接获得快速结果,但是“分组依据”命令为我提供了联接表的第一行,而不是最后一行。
【问题讨论】:
-
1.) 用于订购的字段中是否有索引? 2.) 如果你在一个索引的相反方向排序,它会更慢,所以如果索引在每个案例中是升序还是降序,请谨慎选择
标签: mysql