Originariamente inviato da Aires
Ciao, intanto grazie per le risposte.
@Franzauker: non ho ben capito il metodo pulito, se intendi che il Servizio sia crescente e/o univoco purtroppo la risposta è no. Per il metodo 'sporco' bisogna raccogliere in un array il valore dell'id dell'ultimo record per ogni servizio? Ciò penso rallenti un bel po il sistema
codice:
select * from prova p1 where
p1.id=(select p2.id from prova p2 where p2.serv=p1.serv order by p2.id desc limit 1)
"sporco" (ma attenzione, se id è chiave primaria e non c'è indice su serv questo è il modo "giusto" per far usare l'indice su id)
alternativa (che per mysql, se non ci sono indici usabili, non è efficiente come la prima, perchè nella subquery dipendente NON potrà fare una selezione del massimo "furba")
codice:
select * from prova p1 where
p1.id=(select max(p2.id) from prova p2 where p2.serv=p1.serv)
non un granchè come soluzione, ma dovrebbe fare al caso tuo.
L'ipotesi è che gli ID siano monotoni crescenti, ovvero che le righe siano inserite in quell'ordine