投稿ごとに、それぞれの画像、コメント、いいね、お気に入りの数を取得するクエリを作成しようとしています。このデータはすべて、投稿の ID を常に格納する個別のリレーショナル テーブルにあります。
ただし、クエリを実行すると、他の 3 つのページに最初のページとまったく同じデータが表示されます。
これまでのところ、これをコーディングしました
SELECT * FROM
(SELECT pst.* FROM posts as pst
LEFT JOIN postcategories as pstcat
ON pst.id = pstcat.id_post
WHERE pst.date IS NOT NULL AND pst.date >= '2013-01-01 00:00:00' AND pst.date <= '2013-01-11 00:00:00' ) as res1
INNER JOIN
(SELECT pst.*, count(pstcmt.id) as cmtCount
FROM posts as pst
LEFT JOIN userpostcomments as pstcmt
ON pst.id = pstcmt.id_post
GROUP BY pst.id) as res2 ON res1.id = res2.id
INNER JOIN
(SELECT pst.id, count(pstlk.id) as lkCount
FROM posts as pst
LEFT JOIN userpostlikes as pstlk
ON pst.id = pstlk.id_post
GROUP BY pst.id) as res3 ON res1.id = res3.id
INNER JOIN
(SELECT pst.id, count(pstfav.id) as favCount
FROM posts as pst
LEFT JOIN userpostfavorites as pstfav
ON pst.id = pstfav.id_post
GROUP BY pst.id) as res4 ON res1.id = res4.id
INNER JOIN
(SELECT pst.id, count(pstimg.id) as imgCount
FROM posts as pst
LEFT JOIN postimages as pstimg
ON pst.id = pstimg.id_post
GROUP BY pst.id) as res5 ON res1.id = res5.id
WHERE res1.deleted = 0
AND res1.date IS NOT NULL
GROUP BY res1.id
ORDER BY res1.date DESC
ありがとうございました
UPDATE : 推奨される ORDER BY でクエリを更新しました。ただし、データのミラーリングの問題は依然として存在します