2012-04-17 2 views
0
select name, reported_at from nodes 
where reported_at < curdate() or reported_at is null 
group by name 

Выход:MYSQL для отображения только самые ранние из дублей

name    reported at 
ncs-linux-test.edu 2012-03-16 18:36:03 
ocdev1.net   2012-04-06 16:32:02 
pinc-ctm.net  NULL 

С этим утверждением, я получаю какие-либо результаты формы сообщили в/имя, которое меньше, чем текущая дата.

Что мне нужно, но это утверждение, чтобы вытаскивать только данные, у которых есть дубликаты с более текущей информацией.

Например:

Заявление было только вытащить:

ncs-linux-test.edu 2012-03-16 

если был

ncs-linux-test.edu 

с датой более актуальным, чем 2012-03-16.

+1

Это существенно http://stackoverflow.com/questions/854128/find-duplicate-records-in-mysql, а затем выбрать самый ранний в группе. – nes1983

+0

Большое спасибо – Jeff

+0

Что вы ожидаете получить, если у вас есть дубликаты с нулевыми значениями? –

ответ

1
select * 
from nodes n 
join nodes nlater 
    on n.name = nlater.name 
    and n.reportedat < nlater.reportedat 
Смежные вопросы