我有一个消息系统(非常基本),它有一个像这样的表:
**MESSAGE_ID** **RUSER_ID** **SUSER_ID** **MESSAGE_DATA** **DATE**
RUSER是接收用户,SUSER是发送用户。如果我想输出一个会输出某些用户消息的查询,我目前会这样做:
从 PRIVATE_MESG 中选择 *,其中 RUSER_ID=$USER_ID 或 SUSER_ID=$USER_ID
这会给我与该 USER_ID 关联的所有 message_id。我想要的是创建一个仅生成与RUSER_ID关联的ID或与特定用户关联的SUSER_ID的列。我需要它来选择RUSER_ID 或 SUSER_ID等于USER_ID但只显示不是USER_ID的消息
然后,我想通过该查询的输出进行分组。
任何帮助是极大的赞赏!
谢谢!
更新我并不是真的在寻找 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
希望这可以帮助下一个人!