Durante l'utilizzo di TOP o una sotto-query sia il lavoro, avrei rotto il problema in fasi:
record di destinazione Ricerca
SELECT MIN(date) AS date, id
FROM myTable
WHERE id = 2
GROUP BY id
Iscriviti per ottenere altri campi
SELECT mt.id, mt.name, mt.score, mt.date
FROM myTable mt
INNER JOIN
(
SELECT MIN(date) AS date, id
FROM myTable
WHERE id = 2
GROUP BY id
) x ON x.date = mt.date AND x.id = mt.id
Mentre questa soluzione, utilizzando tabelle derivate, è più lungo, è:
- Più facile per testare
- Auto documentare
- allungabile
E 'più facile per testare come le parti del la query può essere eseguita autonomamente.
È autodocumentante in quanto la query riflette direttamente il requisito ovvero la tabella derivata elenca la riga dove id = 2 con la data meno recente.
È estendibile come se fosse necessaria un'altra condizione, questa può essere facilmente aggiunta alla tabella derivata.
fonte
2017-08-21 16:36:15
E se voglio ottenere il nome anche per questo record – leora