Sky*_*nny 0 mysql sql sorting join
我不会理解为什么排序不能正常使用"ORDER BY average,votes DESC",因为我需要最高的平均值并且投票从上到下,但是DESC没有解决什么问题.我在var_dump http://pastie.org/private/b05smuh0fvw72wwp2w1zq最高entrie的结果在底部,但我需要从顶部开始并且到底部.
SELECT c.*, r.votes, c.total_comments,
ROUND(sumrate / votes) AS average
FROM catalog c LEFT JOIN
(SELECT r.object_id, COUNT(*) as votes, SUM(r.rate) as sumrate
FROM ratings r
GROUP BY r.object_id
) r
ON r.object_id = c.catalog_id LEFT JOIN
(SELECT c.catalog_id, COUNT(*) as total_comments
FROM comments c
GROUP BY c.catalog_id
) c
ON c.catalog_id = c.catalog_id
GROUP BY c.catalog_id
ORDER BY average, votes DESC;
Run Code Online (Sandbox Code Playgroud)
因为您可以定义每列的顺序而不仅仅是order by总计.默认是ASC.
你的订单
ORDER BY average, votes DESC
Run Code Online (Sandbox Code Playgroud)
自动转入
ORDER BY average ASC, votes DESC
Run Code Online (Sandbox Code Playgroud)
但是你在寻找
ORDER BY average DESC, votes DESC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |