Visualizzazione risultati 1 fino 4 di 4

Discussione: [MYsQL] Query a campi incrociati

  1. #1
    Guest

    Predefinito [MySQL] Query a campi incrociati

    Buongiorno

    sul DB ho due tabelle, una degli utenti e l'altra in cui vengono registrati degli eventi.
    Nella tabella degli eventi, questi vengono registrati man mano che si verificano, registrando l'utente che lo ha generato e la data è l'ora in cui si è verificato. Ora può succedere che un utente può ripetere l'evento più volte ed in questo caso ho più righe sulla tabella.

    Ora, se volessi recuperare l'intero elenco degli utenti e sapere se ognuno ha partecipato ad un evento, come faccio, considerando che vorrei che l'utente appaia una sola volta?

    In particolare, per recuperare info su due eventi, avevo pensato ad una query del tipo

    Codice PHP:
    SELECT
    u
    .nome,
    CASE
    e.evento WHEN caso1 THEN "Y" ELSE "N" END AS 'evento1'
    CASE e.evento WHEN caso2 THEN "Y" ELSE "N" END AS 'evento2'
    FROM utenti u
    LEFT JOIN eventi e ON e
    .id_utente = u.id_utente
    Ora, se non ci fossero "duplicati" nella tabella eventi, andrebbe bene, ma essendoci i "duplicati", ottengo che in caso di più casi per un utente, questo viene riportato più volte con differenti combinazioni.
    Usando GROUP BY u.nome complico solo le cose in quanto avrei restituito solo il primo rigo mentre magari negli altri ho info in merito.

    Idee su come risolvere?
    Ultima modifica di vplaza : 27-03-2014 alle ore 23.10.56

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Ma nel risultato le righe sono identiche o no? Se lo sono basta una SELECT DISTINCT


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Le righe variano per il campo data, che contiene data e ora (nel formato yyyy-mm-dd H:i:s) in cui viene generato l'evento.

    Poi vorrei avere non solo l'eneco di chi ha generato/partecipato all'evento (sì, basterebbe una SELECT DISTINCT), ma l'elenco completo degli utenti con la specifica partecipazione o meno, con un'unica interrogazione.
    Ultima modifica di vplaza : 27-03-2014 alle ore 23.12.44

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Se ho capito bene la tua richiesta si sposa molto male con i database relazionali.

    La soluzione più rapida ed efficace è quella di tirare fuori tutti i dati e poi usare PHP per estrapolare i dati che ti servono, diversamente rischi solo di fare un qualcosa di molto complicato che non è detto che funzioni meglio.


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •