3

私は2つのテーブルを持っています

comments
------------------
id       text

rates
---------------------
id    comment_id    score

私のクエリは...ですが、合計操作は影響を受けません。1行だけが返されます。

SELECT *, SUM(rates.score) FROM comment LEFT JOIN rate ON (rate.comment_id = comment.id)
4

3 に答える 3

4

現在のクエリは、すべてのコメントの評価を単純に合計します。あなたがしなければならないことは、GROUP BYコメントごとに集計をグループ化する組み込みです。したがって、の結果は、特定の各コメントの評価の合計のみになります。SUM()

SELECT a.*, SUM(b.score) AS ratingsum
FROM comment a
LEFT JOIN rate b ON a.id = b.comment_id
GROUP BY a.id
于 2012-07-10T22:19:25.037 に答える
4
SELECT comment.*, SUM(rates.score) FROM comment LEFT JOIN rate ON (rate.comment_id = comment.id)
GROUP BY comment.id
于 2012-07-10T21:36:10.187 に答える
2

group by 句を追加してみてください。

 SELECT comment.*, SUM(rates.score) FROM comment LEFT JOIN rate ON rate.comment_id = comment.id GROUP BY rates.comment_id;
于 2012-07-10T21:36:56.573 に答える