[SQL] Selezionare righe database in base ad il record maggiore per ogni id

Federico B.

Nuovo Utente
29 Set 2009
29
0
0
33
Sant'Antioco (CI)
Un saluto a tutti, sono nuovo in questo sito. Mi presento con un p'roblema che mi assale da molto tempo.
Ho letto varie discussioni nel web, ma non sono riuscito a trovare soluzione. Vi presento il problema.

Ho una tabella strutturata in questo modo con i seguenti dati di prova:
Codice:
edit_band 	edit_user 	edit_time 	edit_block 	edit_reason
1 	 	2 	 	1248635164 	2  		Prova Motivo
1 	 	2 	 	1248635285 	2 	 	Prova Motivo 2
2 	 	3 	 	1250939034 	1  		Prova Motivo 3
1 	 	2 	 	1250978390 	4
1 	 	2 	 	1250984273 	4
1 	 	2 	 	1250984277 	4
1 	 	2 	 	1250984314 	4
1 	 	2 	 	1250984317 	4
1 	 	2 	 	1250984351 	4
1 	 	2 	 	1250984361 	4
1 	 	2 	 	1250984533 	4

Eseguo questa query per cercare di fare ciò scritto prima, ma non riesco:
Codice:
SELECT band.band_id, band.band_name, edit.*, user.username, COUNT(edit.edit_band) AS total
FROM ip_bands AS band
	RIGHT JOIN ip_bands_edits AS edit ON edit.edit_band = band.band_id
	LEFT JOIN ip_users AS user ON edit.edit_user = user.user_id
GROUP BY edit.edit_band
ORDER BY edit.edit_time DESC
LIMIT 0, 10
Come vedete il primo campo ha diversi valori duplicati. Ora, devo prendere la riga, per ogni id univoco in edit_band che abbia l'edit_time maggiore.

Il problema è che mi prende i dati, ma me li mischia tutti. Mi prende il timestamp da delle righe, il motivo da altre e così via.

Se non ho spiegato bene il problema cercherò di spiegarlo in un altro modo.

Saluto a tutti.
 

Discussioni simili