2016-07-01 6 views
-2

У меня есть таблица (afk_map_data):Mysql получить последние строки по дате для каждой конкретной группы

id map_id state_id measures_id value created_date 

вопрос заключается >> я хочу, чтобы получить только самые последние строки для measures_id значения недавнего CREATED_DATE

я перепробовал множество решений я пытался много вещей, но это было глупо, я после этого отборного заявления будет моим вопросом ясно

SELECT md.id,md.measures_id,md.value,md.created_date FROM afk_map_data md  
WHERE 
md.map_id = 1 
AND md.state_id = 2 
AND md.measures_id = 4 


the result was : 

id measures_id value created_date 
1   4  777 2016-07-03 
2   4  888 2016-07-03 
3   4  999 2016-07-02 
4   4  555 2016-07-02 

the result that i want is : 

id measures_id value created_date 
1   4  777 2016-07-03 
2   4  888 2016-07-03 

Thanks a lot .. 
+0

где stateid происходит от – mohan111

+0

Как вы определяете «в последнее время дате создания»? Используйте оператор < or >, чтобы исключить все старые записи. Я не совсем уверен, полностью ли понимаю, чего вы пытаетесь достичь. – KJaeg

+0

извините, ребята, за мой плохой вопрос, все, что я хочу, это очистить вопрос ... спасибо за вашу помощь :) –

ответ

0

Использования Condition MAX на колонке Дата

Select TT.id,T.measures_id,TT.value,T.d from afk_map_data TT 
     INNER JOIN (
     SELECT measures_id,MAX(created_date)d FROM afk_map_data 
     GROUP BY measures_id)T 
     ON T.d = TT.created_date 
WHERE 
TT.map_id = 1 
AND TT.state_id = 2 
AND TT.measures_id = 4 
+0

Спасибо, человек, ты мой герой :) –

+0

welcome @NasouhAlmrstani – mohan111

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