次のようなテーブルを持つメッセージング システム (非常に基本的な) があります。
**MESSAGE_ID** **RUSER_ID** **SUSER_ID** **MESSAGE_DATA** **DATE**
RUSERは受信ユーザーで、SUSERは送信ユーザーです。特定のユーザー メッセージを出力するクエリを出力したい場合は、現在次のようにします。
RUSER_ID=$USER_ID または SUSER_ID=$USER_ID の PRIVATE_MESG から * を選択します
これにより、その USER_ID に関連付けられているすべての message_id が得られます。私が望むのは、特定のユーザーに関連付けられたRUSER_IDまたはSUSER_IDに関連付けられたIDのみを生成する列を作成することです。RUSER_ID または SUSER_IDが USER_ID と等しいメッセージを選択する必要がありますが、USER_IDではないメッセージのみを表示します
次に、そのクエリの出力でグループを作成したいと思います。
どんな助けでも大歓迎です!
ありがとう!
update私は本当にmessage_idを探しているのではなく、その人が書いた、または受け取ったユーザーのリストを探しているだけです。
更新 誰もが知っているように、私はこの質問に対する答えを完璧に受け取りました! 後で微調整して、日付順に新しいものから古いものへと表示されるようにしました。DATE() 関数と TIME() 関数を使用して、DATETIME を DATE と TIME に分割することでこれを行いました。これが私の最後のクエリでした:
SELECT
IF(RUSER_ID = $USER, SUSER_ID, RUSER_ID) as THE_OTHER_GUY, DATE(DATE) as DAY, TIME(DATE) as TIME
FROM PRIVATE_MESG
WHERE RUSER_ID = $USER
OR SUSER_ID = $USER;
group by THE_OTHER_GUY ORDER BY DAY DESC, TIME DESC
これが次の人に役立つことを願っています!