Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: aiuto query

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590

    aiuto query

    salve, ho le seguenti tabelle:

    users
    |id|name|username|..

    voti
    |rateduserid|..|..|

    userdata
    id|eta|occhi|capelli|

    rateduserid è l'ID dell'utente votato, quindi nella tabella voti ci sono più righe con lo stesso rateduserid, cioè tante tuple quanti voti ricevuti.
    i dati personali degli utenti sono presenti nella tabella users e nella tabella userdata.
    dovrei produrre una query che mi stampi i primi X risultati selezionando:
    user.id,user.name,userdata.eta
    ordinandoli secondo il numero di voti ricevuti.

    helpmi please, non è una cosa difficile per chi abitualmente ha a che fare coi db
    Ultima modifica di jimbo0; 07-12-2013 a 02:23

  2. #2
    il voto è "secco" (come fosse un "like") oppure ha un valore (es, va da 1 a 5)?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    da 1 a 5

  4. #4
    e quindi come dovrebbe funzionare l'ordinamento? una media?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    hai ragione, da come ho posto la cosa io valutavo solo il numero di voti, ma non ha granché senso mettere nella lista top 10 un utente che ha tanti voti bassi, come non ha senso un utente che ha 2 o 3 voti massimi, quando ci sarebbero utenti con 100 voti con una media del 4.
    Si deve valutare sia il numero di voti che il voto stesso..
    Non saprei come si potrebbe fare, nei ranking solitamente come si fa?

    idea personale: senza calcolare la media, semplicemente si sommano tutti i voti dati ad un utente, i top user sono quelli col punteggio più alto.

    la tabella voti
    |rateruserid|rateduserid|rating|..|
    Ultima modifica di jimbo0; 07-12-2013 a 17:18

  6. #6
    se vuoi la somma usa SUM(), se vuoi la media usa AVG()

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    il metodo di calcolo è secondario, è la query col join che non ricordo proprio come si faccia..

  8. #8
    SELECT colonne FROM tabella1 INNER JOIN tabella2 ON tabella1.colonna=tabella2.colonnacorrispondente

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    SELECT r.rateduserid,r.rating,u.name
    FROM za60s_comprofiler_ratingfield_log AS r
    INNER JOIN za60s_users AS u ON r.rateduserid=u.id

    ho fatto il join, ora come ordino per la somma dei voti?

  10. #10
    i dati escono già sommati?

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.