0

blog_id のリストと、そのブログ ID に対する寄付の合計を、donations というテーブルから取得しようとしています。そして寄付金で注文したいです。基本的には、寄付によってランク付けされたブログのリストを作成したいと考えています。ブログは、blog_id によって参照される別のテーブルに保持されます。

これは私が試してきたことですが、すべての寄付を合計して1行を生成するだけです. ここで何が間違っていたのかわかりません!

$donations_result = mysql_query("SELECT blog_id, sum(amount) FROM donations ORDER BY sum(amount)");

Donations テーブルは、一連の blog_id と個人の寄付です。だから、このようなもの:

blog_id--寄付
1 ----------26
1 ----------1
2 ----------24
2 ---------- -12

4

2 に答える 2

4

列をグループ化していません。集計されていない列でグループ化する必要があり、この場合はblog_id

SELECT blog_id, sum(amount) TotalSum
FROM   donations 
GROUP  BY blog_id
ORDER  BY TotalSum

クエリが例外をスローせずにうまく実行された理由は、mysql が句で非集計列を指定せずに集計関数を使用できるためです。GROUP BY

于 2013-04-07T17:17:41.627 に答える
2

GROUP BY演算子がありません:

SELECT   blog_id, sum(amount) 
FROM     donations
GROUP BY blog_id
ORDER BY sum(amount)
于 2013-04-07T17:17:55.730 に答える