Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Aiuto per Query

  1. #1

    Aiuto per Query

    Ciao a tutti! sono nuovo del forum.
    Premetto che ho cominciato a maneggiare questo tipo di linguaggio(?) ieri e ancora non ne sono venuto a capo. Vi scrivo per chiedervi una mano nel tentativo di strutturare una query secondo le mie necessità.
    Vi spiego: ho un database sqlite con un certo numero di tabelle ma per la query me ne servono solo 2 album e song. In album, tra le tante colonne, ci sono la colonna titolo_album e idalbum mentre in song idalbum e lastplayed (che indica la data e l'ora dell'ultimo ascolto del brano).
    La mia intenzione è di ottenere la lista degli ultimi album ascoltati di recente, incrociando le 2 tabelle.
    Ho provato con
    Codice PHP:
    select albumview.titolo_album
    from albumview join songview on 
    (albumview.idAlbum songview.idAlbum
    order by lastplayed desc 
    ma mi da l'elenco di tutti i brani ascoltati ma con i titoli del relativo album. Va da se che se ho ascoltato un intero album il risultato sarà un lista di album pari al numero dei brani che compongono lo stesso album.
    Allora ho provato con
    Codice PHP:
    select albumview.titolo_album
    from albumview 
    where albumview
    .idAlbum in select albumview.idAlbum from albumview join songview 
    on 
    (albumview.idAlbum songview.idAlbum)  
    where (songview.lastplayed  is not null
    order by lastplayed desc
    Questa query mi da la lista degli ultimi album ascoltati ma non un problema: gli album sono ordinati per idAlbum. Ora io vorrei che gli album siano ordinati per ultimo ascolto.
    Cosa dovrei fare?
    Grazie per l'attenzione

  2. #2
    va bene la prima facendo "select distinct titolo_album from..." così ti prende il titolo solo una volta

  3. #3
    Ciao e grazie.
    Avevo già provato con distinct ma mi dava un elenco non proprio corretto.
    Mi spiego se l'ordine è il seguente

    nome album/posizione ascolto/n. brani ascoltati
    cosa vedi - 1 - 1
    auf der maur - 2 - 1
    smash and trashes - 3 - 2
    hail to the thief - 4 - 7

    con distinct l'ordine non risultava sfasato
    cosa vedi - auf der maur- hail to the thief- altri album in ordine sfasato- smash and trashes- altri album.
    Inoltre ho notato che inseriva anche album con data di ascolto nulla per cui ho messo questa query
    Codice PHP:
    select distinct albumview.* 
    from albumview join songview 
    on 
    (albumview.idAlbum songview.idAlbum
    where (songview.lastplayed  is not null
    order by lastplayed desc 
    I risultati nulli sono stati eliminati ma smash and trashes continua ad essere posizionato erroneamente




    Penso di aver capito il perchè delle sfasature:
    di Smash and trashes, oltre all'ascolto recente (ieri un brano), c'è un ascolto più datato (una settimana fa 7 brani) per cui il distinct mi motra gli album in ordine corretto prendendo in considerazione anche il maggior numero di brani ascoltati.
    come si potrebbe ovviare a questo inconveniente?

  4. #4
    sinceramente non ho capito perché l'elenco sia sbagliato. cerca di essere più chiaro

  5. #5
    Ho appena modificato il post precedente comunque riporto la risposta:
    Penso di aver capito il perchè delle sfasature: di Smash and trashes, oltre all'ascolto recente (ieri un brano), c'è un ascolto più datato (una settimana fa 7 brani) per cui il distinct mi motra gli album in ordine corretto prendendo in considerazione anche il maggior numero di brani ascoltati. come si potrebbe ovviare a questo inconveniente?
    Ancora grazie. Ciao

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