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

    Ordinamento particolare

    Allora ragazzi, avrei un'altra cosa da chiedervi.

    Uso un database mysql e voglio creare una classifica dei libri più votati.
    Ho due tabele
    Libri - In cui inserisco i libri
    Voti - In cui vengono registrate le votazioni di ogni utente.

    Ecco vorrei ordinare i libri mettendo in cima quelli con un maggior numero di voti. Solo che il campo voti non è presente nella tabella libri. Il numero dei voti lo estraggo facendo una select count della tabella voti per un determinato libro.

    C'è un modo di ordinare i libri unendo le informazioni delle tue tabelle? Cioè la select dei libri con la select count dei voti?

    Grazie a tutti.
    Ciao,
    Danilo

  2. #2
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Fai una ricerca per INNER JOIN.

  3. #3
    Sì, conosco l'INNER JOIN, ma nel mio caso, come posso usarlo?
    Ciao,
    Danilo

  4. #4
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Se conosci la INNER JOIN non ti sarà difficile arrivarci, rifletti bene su ciò che devi fare.

  5. #5
    Ci sto riflettendo da un pezzo... altrimenti non avrei scritto

    Forse mi sfugge qualcosa della INNER JOIN?

    Questo è un esempio di INNER JOIN

    <%
    sql = "select table1.campo1,table2.campo2 from table1 inner join table2 on table1.campo1=table2.campo2 where ... ORDER BY ... "
    %>

    Io ottengo il numero totale di voti per un determinato libro con il select count della tabella voti

    cioè

    <%
    strSql = "SELECT COUNT(*) as id FROM voti where libro_id="&idlibro
    %>

    dove idlibro sarebbe l'id corrispondente al libro nella tabella libri.

    Ecco io vorrei mettere in classifica i libri, in ordine di voto, voto ottenuto dalla select count in esempio.
    Ciao,
    Danilo

  6. #6
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Devi lavorare appunto su quello che chiami:
    codice:
    ... as id
    già sai quanto vale, o no?

  7. #7
    Sì... ma come creo una classifica unendo:

    sql = "select * from libri order by ..."

    e

    Sql2 = "SELECT COUNT(*) as id FROM voti where libro_id="&idlibro

    ?

    Nell'order by della prima select dovrebbe esserci il valore che ottengo dalla seconda... :master:

    Grazie per la tua disponibilità!
    Ciao,
    Danilo

  8. #8
    intendi questo?

    SELECT Voto.ID_Libro, Count(Voto.voto) AS Num_Voti, Libro.nome
    FROM Libro INNER JOIN Voto ON Libro.ID = Voto.ID_Libro
    GROUP BY Voto.ID_Libro, Libro.nome
    ORDER BY Voto.ID_Libro;

    ciao

    VaneX

  9. #9
    Sì proprio quello.... effettivamente allora mi sfuggiva qualcosa della INNER JOIN

    Grazie, ora funziona
    Ciao,
    Danilo

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.