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

    [MySQL] order by utente più attivo

    Ciao a tutti, vorrei fare una cosa, sicuramente per voi sarà banale...
    Mettiamo il caso di avere una tabella "utenti" :
    id
    username
    password
    email
    dataReg

    ed una tabella "articoli"
    idArt
    titolo
    contenuto
    dataArticolo

    io vorrey fare una query dove estraggo "id" ed "username" TUTTI gli utenti anche se non hanno mai scritto un articolo ma vorrei ordinare il tutto per dataArticolo ovvero nel caso qualcuno lo avesse scritto recentemente deve uscire prima degli altri, altrimenti per dataReg..... come devo fare?

    Vi ringrazio anticipatamente!!!!

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    C'è qualcosa che non mi torna!

    Se gli utenti fanno gli articoli
    Allora nella tabella Articoli manca un riferimento all'Utente

    __________________________________________________ _

    Dopo puoi fare una vista con gli Utenti e il Count degli articoli
    per ogni utente

    e ordinarla per il campo Count



  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Scusami ma ti ho dato una risposta che non c'entra proprio niente

    Avevo "letto" che volevi gli utenti in ordine del numero di articoli scritti
    invece lo chiedi per data ultimo articolo e data registrazione

    Mi sto preoccupando,
    dev'essere la vecchiaia che avanza

    __________________________________________________ ____

    Comunque vale quello che ho detto
    nella tabella "articoli" hai bisogno di un riferimento
    all'utente che ha scritto gli articoli stessi

    quindi se hai la tabella "utenti"
    __ id
    __ username
    __ password
    __ email
    __datareg

    e la tabella "articoli"
    __ idArt
    __ idUte (Campo aggiunto )
    __ titolo
    __ contenuto
    __ dataArticolo

    La tua vista sara:
    codice:
    SELECT 
    utenti.id, 
    utenti.username, 
    Max(articoli.dataArticolo) AS UltimoArticolo, 
    utenti.datareg
    FROM 
    utenti 
    LEFT JOIN 
    articoli 
    ON 
    utenti.id = articoli.idUte
    GROUP BY 
    utenti.id, 
    utenti.username, 
    utenti.datareg
    ORDER BY 
    Max(articoli.dataArticolo) DESC, 
    utenti.datareg DESC
    ;
    Dovrai adattarla alla sintassi di MySql

    Saluti

  4. #4
    Si hai ragione avevo dimenticato di scrivere quel campo
    Grazie mille, sei veramente un grande! stavo diventando matto!

    Grazie per il tempo e per la pazienza buona giornata!

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.