У меня есть две таблицы, messages
и thread
сообщения - это основная таблица, и нить - это где я держу разговор между двумя пользователями. Я хочу выбрать только из messages
таблицу и заказ по thread_id
от thread
стол. Я использую ниже sql, но он не заказывает, как я хочу.заказывать другой столбец таблицы mysql
Моя цель - установить новое сообщение в таблицу thread
, чтобы таблица родительского сообщения в таблице messages
отображалась вверху. Кто-нибудь есть идеи?
SELECT m.*
FROM messages AS m
JOIN thread AS t
ON t.thread_id = m.id
WHERE (m.to_user = ?
AND m.deleted != ?
AND m.del2 != ?)
OR
(m.from_user = ?
AND m.conversation = 'true'
AND m.deleted != ?
AND m.del2 != ?)
ORDER BY t.thread_id desc);
сообщений Столик
id to_user from_user message is_read deleted del2 conversation
----------------------------------------------------------------------------------------
1 user1 user2 hi mark, true true
2 user3 user4 wass up yo? true true
3 user1 user3 blah blah
таблица нить
thread_id thread_to_user thread_from_user thread_message thread_message_id thread_is_read
---------------------------------------------------------------------------------------------------
1 user2 user1 hi there, 1 1
2 user1 user2 hey, wassup 1 1
3 user2 user1 not much, hw u doin 1 1
4 user1 user2 doing great and you? 1 0
5 user3 user4 heyyyy 2 1
6 user4 user3 hi, u coming? 2 0
То, что я ожидал, когда вторя строку:
id to_user from_user message is_read deleted del2 conversation
----------------------------------------------------------------------------------------
2 user3 user4 wass up yo? true true
1 user1 user2 hi mark, true true
3 user1 user3 blah blah
Чтобы заказать по thread_id, он должен фигурировать в результатах. Итак, просто добавьте его в свой 'SELECT' и он должен сделать так, как ожидалось. –
Третья запись в вашей таблице' Message', которая имеет 'id = 3', с какой записью она связана в вашей таблице' thread'? – Edper
@Edper между этими пользователями не начался разговор, поэтому, когда user1 видит сообщение и отвечает, ответ отправляется в таблицу 'thread', имеющую' thread_message_id = 3' – user3006683