私は mysql を使用しており、ほぼ完全に機能するクエリがあります。次の3つのテーブルがあります。
論文
- article_id
コメント
- comment_id
- article_id
意見
- view_id
- article_id
そして、このすべての情報を 1 つのクエリにまとめたいと考えています。各記事の閲覧数とコメント数を知りたいです。私は今日、何人かの素晴らしい人々の助けを借りて何とか作ることができましたが、また立ち往生しています.
SELECT article.id_article,
COUNT(view.id_article),
COUNT(comment.id_article)
FROM article LEFT JOIN view ON article.id_article = view.id_article
LEFT JOIN comment ON article.id_article = comment.id_article
GROUP BY id_article
ORDER BY id_article
何が起こるかというと、最初の行だけが間違った結果を示しています。4 つのコメントと 3 つのビューの代わりに、両方に 24 が表示されます。残りはすべて問題ないため、理由はわかりません。コメント数が 4 倍になり、コメントとビューの両方で最初の行に再現されているようです。