У меня есть система обмена сообщениями (очень простая), в которой есть такая таблица:
**MESSAGE_ID** **RUSER_ID** **SUSER_ID** **MESSAGE_DATA** **DATE**
RUSER – это пользователь-получатель, а SUSER – пользователь-отправитель. Если бы я хотел вывести запрос, который выводил бы определенные сообщения пользователей, я бы сейчас сделал:
Выберите * из PRIVATE_MESG, где RUSER_ID=$USER_ID или SUSER_ID=$USER_ID
Это дало бы мне все message_id, связанные с этим USER_ID. Я хотел бы создать столбец, который будет генерировать только ID, связанный с RUSER_ID или SUSER_ID, связанный с конкретным пользователем. Мне нужно, чтобы он выбирал сообщения, которые RUSER_ID или SUSER_ID равны USER_ID, но отображал только те сообщения, которые не являются USER_ID.
Затем я хотел бы сделать группу по результату этого запроса.
Любая помощь приветствуется!
Спасибо!
update На самом деле я не ищу message_id, я просто ищу список пользователей, которым этот человек написал или получил от них.
ОБНОВЛЕНИЕ Чтобы все знали, я отлично получил ответ на этот вопрос! Позже я настроил его так, чтобы он также отображал их по дате от самого нового до самого старого. Я сделал это, разделив DATETIME на DATE и TIME, ИСПОЛЬЗУЯ функции 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
Надеюсь, это поможет следующему человеку!