У меня есть запрос MySQL У меня есть проблема в сортировке последнего сообщения отправителя вот мой запрос ниже:Mysql запрос на объединения таблиц
SELECT
`Mes`.`fromid`,
`Mes`.`is_read`,
`Mes`.`id` AS `mesid`,
`Mes`.`message`,
max(Mes.date) AS `date`,
`User`.`username`,
`User`.`MemberID` AS `Uid`
FROM `messages` AS `Mes`
INNER JOIN `users` AS `User` ON User.MemberID = Mes.fromid
WHERE (Mes.toid = 5 AND Mes.fromid <> 5)
GROUP BY `Mes`.`fromid`
ORDER BY `date` DESC
вот моя таблица из базы данных: Пользователи табличных
MemberID UserName Email Password
1 User1 [email protected] 123456
2 User2 [email protected] 123456
3 User3 [email protected] 123456
4 User4 [email protected] 123456
5 User5 [email protected] 123456
сообщение таблица:
id fromid toid message is_read date
1 5 2 hello test 1 1 2012-08-24 01:00:00
2 2 5 hello test 2 1 2012-08-24 02:00:00
3 3 5 hello test 3 1 2012-08-24 03:00:00
4 4 5 hello test 4 1 2012-08-24 04:00:00
5 2 5 hello test 5 1 2012-08-25 05:00:00
и Ouput моего запроса:
SELECT
`Mes`.`fromid`,
`Mes`.`is_read`,
`Mes`.`id` AS `mesid`,
`Mes`.`message`,
max(Mes.date) AS `date`,
`User`.`username`,
`User`.`MemberID` AS `Uid`
FROM `messages` AS `Mes`
INNER JOIN `users` AS `User` ON User.MemberID = Mes.fromid
WHERE (Mes.toid = 5 AND Mes.fromid <> 5)
GROUP BY `Mes`.`fromid`
ORDER BY `date` DESC
является:
USERNAME MESSAGE DATE
user2 hello test 2 2012-08-25 05:00:00
user4 hello test 4 2012-08-25 04:00:00
user4 hello test 3 2012-08-25 03:00:00
Если вы заметили, Сортировка с даты прав, но последнее сообщение не является правильным. Я хочу, чтобы мои результаты были такими.
USERNAME MESSAGE DATE
user2 hello test 5 2012-08-25 05:00:00
user4 hello test 4 2012-08-25 04:00:00
user4 hello test 3 2012-08-25 03:00:00
Вместо сообщения «тест привет 2» Я хочу, чтобы отсортировать последнее сообщение, которое «тест привет 5»
Любой может помочь моей проблеме?
Спасибо так много ...
вы можете рассмотреть хэширования эти пароли в таблице пользователей – hdgarrood