Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590

    selezionare utenti con punteggi maggiori

    devo selezionare userdid, username, professione, punti, avatar degli utenti con punteggi maggiori per ogni professione

    queste le tabelle
    lyxg.gif


    codice:
    SELECT p.userid, p.points,u.username,c.avatar,c.cb_professione
    FROM points AS p
    INNER JOIN comprofiler AS c ON c.id = p.userid
    INNER JOIN users AS u ON u.id = p.userid
    WHERE p.points >0 AND c.cb_professione !=''
    GROUP BY c.cb_professione
    ORDER BY  p.points DESC
    stranamente all'atto pratico mi ordina i risultati dal punteggi maggiore, ma restituisce il primo trovato della professione.
    mi spiego:
    nel db ci sono UTENTEA (1000punti) e UTENTEB (2000punti) con professione "attore"
    la query stampa UTENTEA, perché (credo, in una delle tabelle, UTENTEA è stato inserito prima)

  2. #2
    e rispettiamolo sto regolamento e indichiamo il db con cui si sta lavorando!

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    scus
    mysql

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    sto provando un po' le subquery in select

    codice:
    SELECT p.userid, p.points,
        (SELECT avatar
        FROM comprofiler AS c
        WHERE p.userid = id) AS avatar,
        (SELECT username
        FROM users
        WHERE p.userid = id
        ) AS username
    FROM points AS p
    ORDER BY  p.points DESC
    così seleziono i dati degli utenti e sono ordinati per punteggio maggiore (come voglio io), ma in questo caso non riesco a prendere cb_professione da comprofiler

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.