私は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)
私は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)
現在のクエリは、すべてのコメントの評価を単純に合計します。あなたがしなければならないことは、各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
SELECT comment.*, SUM(rates.score) FROM comment LEFT JOIN rate ON (rate.comment_id = comment.id)
GROUP BY comment.id
group by 句を追加してみてください。
SELECT comment.*, SUM(rates.score) FROM comment LEFT JOIN rate ON rate.comment_id = comment.id GROUP BY rates.comment_id;