2013-12-10 3 views
0

Я хочу выбрать данные из таблицы, группы по этим данным, с максимальным значением даты.Группа от максимальной даты

В моей таблице у меня 4 столбца - id, message_id, client_id and date. Идентификатор столбца уникален и автоматически увеличивается, а message_id и client_id имеют повторяющиеся значения. дата почти уникальна. Я хочу select all records, group by message_id and client_id, that has date maximum.

мой запрос -

SELECT *,MAX(`date`) AS `maxdate` FROM `table_name` group by `message_id`,`client_id` order by `date` desc 

, но это не дает дату с максимальным значением. Я получаю сгруппированную запись с первой датой.

Пожалуйста, помогите, и скажите мне правильный запрос, я совершенно новый для mysql.

+0

Ваш запрос кажется правильным для того, что вы просите. Возможно, попробуйте предоставить некоторые примеры данных. Вы хотите получить также идентификатор, соответствующий максимальной дате? Если это так, вам необходимо выполнить самостоятельное объединение, как описано ниже. – LSerni

ответ

0

Попробуйте этот запрос из - это то, как я хотел бы сделать это в Oracle:

select n1.id, n1.message_id, n1.client_id, n1.date 
from shailjas_note n1 
where n1.date = (select max(n2.date) 
        from shailjas_note n2 
        where n1.message_id = n2.message_id 
         and n1.client_id = n2.client_id) 
+1

Спасибо за ваш запрос .. Он сделал то, что хотел. В моем запросе мне просто нужно было добавить это - 'order by' maxdate' desc' –

Смежные вопросы