ネストされたクエリをできるだけ多く削除するために、次のクエリを最適化しようとしています。
SELECT fp.id,
fp.user_id,
COUNT(c.id) AS num_replies,
c2.created AS latest_activity_time, c2.user_id AS latest_activity_user_id
FROM forum_posts fp
LEFT JOIN comments c ON c.object_id = fp.id
LEFT JOIN (SELECT created, user_id
FROM comments
ORDER BY created DESC
LIMIT 1) AS c2 ON fp.id = c2.object_id
WHERE fp.deleted != 1
GROUP BY fp.id
エラーが見つかった場合は申し訳ありません...このクエリを関連する部分だけに絞り込んでみましたが、プロセスのどこかで間違いを犯した可能性があります
つまり、基本的に、ここにあるのは、フォーラムの投稿の表と、それらの投稿に対するコメントの返信の表です。各フォーラムの投稿には、複数の返信を含めることができます。最初の結合は応答の総数をカウントするために使用され、2番目の結合は最新の応答の情報を取得するために使用されます。このクエリから返されるのは、次のようなものです。
したがって、私は基本的に、このネストされたクエリに頼ることなくこれを行う方法を理解しようとしています。あなたたちが提供できるどんな助けも非常に役に立ちます。
ありがとう!
編集latest_activity_time
:クエリを少し調整して、、だけでなく、もプルバックする必要があるという事実を反映しましたlatest_activity_user_id
。混乱させて申し訳ありません!