我正在尝试从名为捐赠的表格中获取blog_id列表以及该博客ID上的捐款总额。而且我想通过捐款总额来订购它。基本上我想制作一份按捐款排名的博客列表。博客保存在blog_id引用的不同表中。
这是我一直在尝试的,但它所做的只是总结所有捐款并产生1排。我不明白我在这里做错了什么!
$donations_result = mysql_query("SELECT blog_id, sum(amount) FROM donations ORDER BY sum(amount)");
捐款表是一系列blog_ids和个人捐款。所以像这样:
blog_id - 捐赠
1 ---------- 26
1 ---------- 1
2 ---------- 24
2 ---------- 12
答案 0 :(得分:3)
您没有对列进行分组。您需要按非聚合列对其进行分组,在本例中为blog_id
SELECT blog_id, sum(amount) TotalSum
FROM donations
GROUP BY blog_id
ORDER BY TotalSum
您的查询执行良好而不抛出异常的原因是因为mysql允许使用聚合函数而不在GROUP BY
子句中指定非聚合列。
答案 1 :(得分:2)
您错过了GROUP BY
运营商:
SELECT blog_id, sum(amount)
FROM donations
GROUP BY blog_id
ORDER BY sum(amount)