2015-08-10 4 views
1

Смотрите мою таблицу (sample_table),MYSQL выбрать недавнюю запись каждого из

----------------------------- 
id | from | to | 
----------------------------- 
1  | 2  | 1 | 
3  | 2  | 1 | 
4  | 2  | 4 | 
5  | 3  | 2 | 
9  | 3  | 1 | 
11 | 4  | 1 | 
12 | 4  | 3 | 
----------------------------- 

Для каждого from я хотел бы строку, держащего самую последнюю to, где to = 1

Я имею в виду хочу только после,

----------------------------- 
id | from | to | 
----------------------------- 
3  | 2  | 1 | 
9  | 3  | 1 | 
11 | 4  | 1 | 
----------------------------- 

I Try следующий запрос,

SELECT * FROM sample_table WHERE to = 1 GROUP BY from 

Он дает первый ряд каждого. Помоги мне.

Спасибо,

+0

возможно дубликат [Получение последней записи в каждой группе] (http://stackoverflow.com/questions/1313120/retrieving-the-last-record-in-each-gro вверх) –

ответ

0

Попробуйте это

select t1.id, t1.from, t1.to from table as t1 inner join 
(
select to, from,min(id) as id from table 
where to=1 
group by to,from 
) as t2 
on t1.to=t2.to and t1.id=2.id and t1.from=t2.from 
Смежные вопросы