Добрый день.
Подскажите пожалуйста как сделать правильную выборку для вывода всех диалогов пользователя.
Существует три таблицы:
- conversation: таблица всех диалогов
- conversation_mem: информация о том, в каком диалоге(c_id) состоит пользователь(user)
- user_profile: таблица пользователей
Раньше в одном диалоге состояли ровно 2 пользователя, поэтому таблицы
conversation_mem не было вовсе, а таблица
conversation: имела поля:
user1 и
user2. Выборка делалась так:
SELECT U.id, U.name, U.lastname, U.lastact, C.c_id
FROM user_profile U, conversation C
WHERE
CASE
WHEN C.user1 = '$my_id'
THEN C.user2 = U.id
WHEN C.user2 = '$my_id'
THEN C.user1 = U.id
END
AND ( C.user1 = '$my_id' OR C.user2 = '$my_id' )
ORDER BY C.time DESC
Теперь необходимо все по той же переменной $my_id:
- узнать все с_id, где user равен $my_id
- узнать все user, где с_id равен найденным в шаге 1
- и достать необходимые поля из user_profile, где id равен найденным id в поле user в шаге 2
Хочу сделать как и раньше все в одном запросе, понимаю что сам запрос нужно усложнить, но не знаю как. Буду благодарен за оказанную помощь.