2015-04-12 2 views
1

Мне нужно сделать запрос, который будет выводить данные на основе последнего и второго последнего времени поиска. Поясню таблицу:mysql query с группировкой с отметкой времени

id key   comp timestamp 
1 keyword1 comp1 11-04-2015 23:56 
2 keyword2 comp3 12-04-2015 23:56 
3 keyword1 comp2 12-04-2015 00:56 
4 keyword3 comp4 11-04-2015 23:56 
5 keyword3 comp6 11-04-2015 23:56 

Теперь вывод должен быть:

keyword1 comp1 11-04-2015 23:56 comp2 12-04-2015 00:56 

Значит мне нужно, чтобы отобразить последний поиск и второй последний искали название аккомпанемента из KEYWORD1 ... Я действительно беспомощны на такая ситуация, как поступить .... может любой, пожалуйста, руководство меня с этим ...

ответ

2
select r1.key 
,  r1.comp 
,  r1.timestamp 
,  r2.key 
,  r2.comp 
,  r2.timestamp 
from (
     select * 
     from YourTable 
     where `key` = 'keyword1' 
     order by 
       timestamp desc 
     limit 1 -- First row 
     ) r1 
left join 
     (
     select * 
     from YourTable 
     where `key` = 'keyword1' 
     order by 
       timestamp desc 
     limit 1, 1 -- Skip 1, take 1 --> second row 
     ) r2 
on  1=1 

See it working at SQL Fiddle.

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