SELECT * FROM conversation_1
LEFT JOIN conversation_2
ON conversation_1.c_id = conversation_2.c_id
LEFT JOIN user
ON conversation_2.user_id = user.user_id
LEFT JOIN message
ON conversation_1.c_id = message.c_id
WHERE conversation_1.user_id=1
GROUP BY message.c_id
conversation_1 conversation_2
c_id user_id c_id user_id
1 1 1 2
2 1 2 3
3 2
У меня есть сообщение DB построить в MysqlMysql группа по выборки последней строки
Я делаю 4 таблицы пользователя, conversation_1, conversation_2, сообщение о
когда пользователь попытке открыть его окно сообщения, оно будет оттенять все разговоры (conversation_1)
, чем присоединиться к пользователю conversation_2 и использования conversation_2, чтобы узнать, какой пользователь
, чем присоединиться к сообщению.
c_id user_id user_name message
1 2 Alex Hi user_1, this is user_2
2 3 John hi user_3, user_2 don't talk to me
он работает отлично, однако я хочу отобразить message
из последней строкиGROUP BY
В настоящее время его отображение 1-й строки в этой группе.
ps.conversation_1.c_id является автоматическое приращение и c_id вставит к conversation_2, который имеет присоединиться к этой беседе
Понятие "* последний *" не определено отсутствующего явного упорядочения. Как вы определяете, какие сообщения «* last *» в вашей таблице «сообщений»? – eggyal
message_id является автоматическим приращением, я пытаюсь использовать ORDER BY m_id DESC, но он работает только для 1 строки без GROUP BY, мне больше 1 строки – user2178521