Прежде всего, извините за мой плохой английский ...
У меня проблема с одним из моих запросов MySQL. У меня есть две таблицы: сообщения и ответы.
Таблица сообщений содержит поле id, Discussion_id, Content и Date. Таблица ответов содержит поле id, message_id, content и date.
Я хочу, чтобы для одного конкретного обсуждения были выбраны последние десять сообщений и их ответы. Сообщения должны быть отсортированы по последнему ответу, ответы должны быть отсортированы первыми.
(Нравится Facebook)
Я могу сделать это так:
SELECT * FROM messages WHERE discussion_id = 'test' ORDER BY date DESC;
А затем используйте цикл foreach PHP для
SELECT * FROM replies WHERE message_id = 'test' ORDER BY date ASC;
Но если бы я использовал это, у меня 11 запросов, что не идеально. Я думал о присоединении или объединении, но если бы я это сделал, ответы и сообщения не были разделены. Список отсортирован по replies.date, но ответы и их родительское сообщение больше не вместе. Я использую это:
SELECT * FROM messages LEFT JOIN replies ON messages.id = replies.message_id WHERE discussion_id='4cc43b40586b6' ORDER BY replies.date DESC
Можно ли сделать один запрос для этой задачи?