Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Selezionare record in base al valore più grande di un campo facendo due JOIN

    Allora ragazzi, mi sono letto delle guide in internet, ma non ho capito come posso risolvere.

    Ho una tabella, dove registro il timestamp() per ogni modifica fatta in una sezione e l'id della sezione.
    codice:
    edit_band 	edit_user 	edit_time 	edit_block 	edit_reason
    1 	 	2  		1248635164  	2  		Prova Motivo
    1  		2  		1248635285  	2  		Prova Motivo 2
    Ora eseguo questa query:
    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
    E mi restituisce:
    codice:
    band_id 	band_name 	edit_band 	edit_user 	edit_time 	edit_block 	edit_reason 	username  		total
    1  	 	Sonata Arctica 	1 	 	2 	 	1248635164 	2 	 	Prova Motivo 	FedericoBiccheddu 	2
    Come vedete non mi prende l'ultimo timestamp.

    Potrei avere più dati con lo stesso band_id, quello che conta è il timestamp.

    In poche parole devo creare un blocco dove mi visualizza le ultime sezioni modificate.

    Attendo risposte in merito

  2. #2

  3. #3
    Ho dato un'occhiata, ma non sono riusito a capire come dovrei strutturare nel mio caso la query.

    Ridetto in parole semplici devo prendere la riga dove c'è l'edit_time maggiore tra quelle che hanno lo stesso band_id.

    La LEFT JOIN mi serve per prendere il nome della band da un'altra tabella mentre la RIGHT JOIN per prendere i dati dell'username.

    Grazie ancora del supporto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.