SELECT postID, threadID, COUNT(DISTINCT postID) as count
FROM wbb1_1_post post
LEFT JOIN wcf1_user_to_groups groups
ON post.userID = groups.userID
WHERE threadID IN (468)
AND groupID IN (4,10)
AND isDisabled != 1
AND isDeleted != 1
ORDER BY postID ASC
クリス = グループ ID 4
セバスチャン S. = groupID 10
結果:
postID threadID count
2811 468 2
すべてが正しいです。
SELECT postID, threadID, COUNT(DISTINCT postID) as count
FROM wbb1_1_post post
LEFT JOIN wcf1_user_to_groups groups
ON post.userID = groups.userID
WHERE threadID IN (68)
AND groupID IN (7)
AND isDisabled != 1
AND isDeleted != 1
ORDER BY postID ASC
タリシュとベンダー = groupID 7
結果:
postID threadID count
349 (wrong!) 68 3
結果は 308 になるはずです。これは、最も古い投稿が必要なためです (これが、postID ASC で注文する理由です)。 このクエリを最適化する方法はありますか?