Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    217

    [MySql] Query con order by "misto"

    Nel mio database ad ogni giocatore è associato un numero random.
    Devo fare una query per estrarre i giocatori in ordine "random per squadra", ovvero i giocatori vengono raggruppati per squadra a partire dal giocatore con il random più basso. (Se il giocatore con il random più basso è del Genoa, subito dopo verranno comunque tutti i giocatori del genoa, indipendente dal loro valore random associato)

    Come devo organizzare i parametri "squadra" e "random" dopo ORDER BY?

    Per esempio, se questo è l'ordine random assoluto:
    Mario Rossi - Genoa - Random = 1
    Davide Arelli - Juve - Random = 2
    Luca Arcella - Milan - Random = 3
    Fede Fedis - Juve - Random = 4
    Gigio Gigi - Genoa - Random = 5

    Vorrei venissero ordinati così:
    Mario Rossi - Genoa - Random = 1
    Gigio Gigi - Genoa - Random = 5
    Davide Arelli - Juve - Random = 2
    Fede Fedis - Juve - Random = 4
    Luca Arcella - Milan - Random = 3

  2. #2
    order by squadra, random

    ma non e' che puoi ordinare partendo dal random piu' basso per definire la squadra.
    Delle due o ordini per squadra e random oppure viceversa.

    nel tuo esempio forse casualmente il random piu' basso corrisponde al valore ascii piu' basso della lettera G di genoa o forse non ti sei spiegato troppo bene quando affermi:

    Devo fare una query per estrarre i giocatori in ordine "random per squadra", ovvero i giocatori vengono raggruppati per squadra a partire dal giocatore con il random più basso. (Se il giocatore con il random più basso è del Genoa, subito dopo verranno comunque tutti i giocatori del genoa, indipendente dal loro valore random associato)

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    217
    Penso che tu mi abbia già risposto: purtroppo non posso fare quello che vorrei, cioè ordinare "per squadra" partendo dal random più basso (ovvero, il giocatore con il random più basso definisce la prima squadra [segue l'elenco di tutti i giocatori di quella squadra, indipendentemente dal loro random]. Fatta la prima squadra, il giocatore, tra i restanti, con il random più basso definisce la seconda squadra, segue l'elenco di quei giocatori, è così via...
    Comunque no, il numero random è stato assegnato a tutti i giocatori indipendentemente dalla loro squadra.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    18
    Ciao Tom, purtroppo la tua spiegazione del problema è poco precisa quindi confonde le idee, magari se descrivi la struttura delle tabelle sulle quali operi sarebbe di grande aiuto , cmq ipotiziamo che hai una tabella costituita da 4 colonne

    Chiave_primaria | Nominativo_Giocatore | Squadra | Numero_Random

    una query strutturata in questa maniera dovrebbe darti il risultato voluto

    codice:
    select nome_tabella.* from 
    nome_tabella inner join
    
    (select  Squadra  , Min(Numero_Random) as Random_squadre from nome_tabella group by  Squadra ) as Squadre
    
     on nome_tabella.squadra = Squadre.squadra      order by  Random_squadre , Numero_Random
    In pratica esegui una query che estrare per ogni squadra il minimo random ad essa associato , il risultato di questa query lo utilizzi per metterlo in join con la tabella stessa otenendo cosi una nuova colonna che è il random minimo della squadra e cosi facendo puoi fare l'ordinamento sulle due colonne

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    217
    Grazie mille, ci provo!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.