私は過去数時間でこのクエリで立ち往生しました、そして私はそれを理解するのを手伝ってくれる誰かをひどく必要としています。プライベートメッセージシステムを完成させようとしていますが、データベーステーブルで自分自身を失いました。システム用に3つのテーブルを作成しましたが、それらは次のとおりです。
CONVERSATION(**conversation_id**, subject)
CONVERSATION_MEMBER(**conversation_id**, **user_id**, conversation_last_view, conversation_deleted)
CONVERSATION_MESSAGE(**message_id**, conversation_id, user_id, message_date, message_text)
さて、特定のユーザーのすべての会話を取得する関数では、件名と日付を取得し、最後に、話しているユーザーを表示したいと思います。私は次のクエリを書きました:
SELECT
c.conversation_id,
c.conversation_subject,
MAX(cmes.message_date) AS conversation_last_reply,
FROM conversation c, conversation_member cmem, conversation_message cmes
WHERE c.conversation_id = cmes.conversation_id
AND c.conversation_id = cmem.conversation_id
AND cmem.user_id = {$_SESSION['user_id']}
AND cmem.conversation_deleted = 0
GROUP BY c.conversation_id
ORDER BY conversation_last_reply DESC
そして、ついに私はユーザーの名前と姓(会話の他のユーザー)を取得しようとしていますが、それを行う方法に迷いました。最初のクエリの結果をループしながら会話IDを取得し、ユーザーの名前と名前を返す別の関数を作成しようとしましたが、うまくいきませんでした。
ところで、ユーザーのために私は別のテーブルを持っています...私はあなたに言う必要はないと思います。はい、ありがとうございます。