私はmysqlで3つのテーブルを結合することに問題があります。mysqlの複数のテーブルを複数のテーブルに結合する方法
たちは、私はそれで私のエントリを保つposts
という名前のテーブルを持っていると言うことができます、私は私がでUSER_IDさんとpost_idの年代を保存likes
という名前のテーブルと私はUSER_IDさんとpost_idの年代保存comments
という名前の3番目のテーブルとその中のコメントのテキストを持っています。
私のエントリのリストを取得し、各エントリの好き嫌いやコメントの数を取得するクエリが必要です。
このクエリを使用してイム:
SELECT posts.id, count(comments.id) as total_comments, count(likes.id) as total_likes
FROM `posts`
LEFT OUTER JOIN comments ON comments.post_id = posts.id
LEFT OUTER JOIN likes ON likes.post_id = posts.id
GROUP BY posts.id
が、コメントは項目のために空になっている場合は、このクエリの問題は、そこにある、カウントはちょうどOKですが、エントリが2つのコメントと4を持っている場合は言うことができます好きlike、total_commentsとtotal_likesは両方とも "8"になります。つまり、mysqlはそれらを乗算します。 私は混乱しています。私は何をするのか分かりません。
ありがとうございました。
おかげで、魔法のように働きました。 – Sallar