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

    [mysql] select complicata

    salve a tutti.
    ho una tabella mysql così strutturata:

    canzone - artista - album - clicks ...

    i clicks sono relativi alle canzoni.

    vorrei far selezionare i prim x album che hanno le canzoni col maggior numero di click e visualizzarli a video.
    Vorrei, però, evitare che un album già stampato a video sia ripetuto.
    come potrei fare?

  2. #2
    Utente di HTML.it L'avatar di aserena
    Registrato dal
    Feb 2003
    Messaggi
    310
    Codice PHP:
    sql "SELECT album, sum( clicks ) AS num_clicks FROM tabella GROUP BY album LIMIT 0 , 2 "
    Devi solo modificare il nome della tabella ('tabella') e il secondo parametro nella clausola limit, come la vedi sopra ti stamperà solo i primi 2 album + clikkati.


    ciao
    La (!) è quella roba che in autunno si intristisce... perche': seccano i piselli, migrano gli uccelli, cadono i marroni, e se poi c'è anche la nebbia non si vede più un caXXo!! by Piero.mac @07/05

  3. #3
    $select = "SELECT album, artist, sum( totale ) AS num_totale FROM song GROUP BY album DESC LIMIT 5 ";

    poi gli faccio stampare

    artista - album

    ma mi stampa gli album con il maggior numero TOTALE di click, o gli album che hanno la singola canzone con il numero più alto di click?

    perchè non mi visualizza quello che dovrebbe...

  4. #4
    Ma come e' fatta la tua tabella?

    se in un album hai tante canzoni, come metti i record? duplichi il nome dell'album o fai una tabella separata? I click sono associati all'album oppure alle canzoni?

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

  5. #5
    ci sono due tabelle, una per le canzoni, l'altra per gli album

    in quella delle canzoni c'è
    titolo, artista, album, click.

    per ogni canzone vado a compilare tutti i record, quindi i nomi di album e artista sono tanti quante le canzoni di quell'album, artista presenti.

    i click sono associati alle canzoni, quindi se io ordino la query per le prime 10 canzoni con maggior numero di click mi da:

    Caparezza - Fuori Dal Tunnell - Verità Supposte
    Caparezza - Vengo dalla luna - Verità Supposte
    Caparezza - Il secondo secondo me - Verità Supposte
    Caparezza - iodellavitanonhocapitouncazzo - Verità Supposte
    Caparezza - Nessuna Razza - Verità Supposte
    Caparezza - Mea Culpa - ?!
    Caparezza - La legge dell'ortica - Verità Supposte
    Caparezza - Dagli All'untore - Verità Supposte
    Caparezza - Guida me - Verità Supposte
    Caparezza - Stanco e Sbronzo - Verità Supposte

    io invece voglio i primi 10 album con maggior numero di click,
    quindi tipo:

    Caparezza - Verità Supposte
    Caparezza - !?
    Artista - Album
    Artista2 - Album
    etc...

  6. #6
    Utente di HTML.it L'avatar di aserena
    Registrato dal
    Feb 2003
    Messaggi
    310
    Scusa ma ancora non capisco la struttura della tua tabella.... cioè, canzoni.album è una chiave esterna, cioè contiene un riferimento alla tabella album vero...?? Perchè in questo caso devi fare una join tra le due tabelle...

    Senti, prova a postare la struttura di entrambe le tabelle, anche quindi di qualla che contiene gli album, magari con un esempio semplice di come sono popolate entrambe... una volta capita la struttura diventa banale fare la query...

    ciao
    La (!) è quella roba che in autunno si intristisce... perche': seccano i piselli, migrano gli uccelli, cadono i marroni, e se poi c'è anche la nebbia non si vede più un caXXo!! by Piero.mac @07/05

  7. #7
    la tabella album non centra nulla.

    devo lavorare sulla tabella song, questi i campi:

    uid title album artist featuring producer lyric track nome mail totale modifica

  8. #8
    Fai una query dove conti i click raggruppati per album...

    SELECT *, SUM(clik) as tot
    FROM canzoni
    GROUP BY album
    ORDER BY tot DESC
    LIMIT 10

    e che "ILLO" c'e' la mandi 'BBONA.....


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

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.