Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Query dati non corrispondenti

    Ciao, sto impazzendo con una query (MySQL).

    Ho tre tabelle: giudici, candidati e voti.
    - Nella tabella giudici ci sono i dati dei giudici.
    - Nella tabella candidati ci sono i dati dei candidati.
    - Nella tabella voti ci sono i voti che vengono dati dai vari giudici ai candidati.

    I giudici possono dare voti a qualsiasi candidato. Ogni candidato può ricevere voti da più giudici. Ogni giudice può dare un solo voto ad un certo candidato.
    Nella tabella voti, per ogni voto viene riportato l'id_candidato e l'id_giudice.

    Ogni giudice ha accesso ai dati, con un profilo personale e deve poter vedere l'elenco dei candidati ai quali lui non ha ancora dato il suo voto.

    Prima dell'elenco, voglio mostrare il numero totale dei candidati che non hanno un voto da quel giudice.


    Le due query in questione sono queste.

    La prima mi dovrebbe contare, nel profilo di un certo giudice, i candidati che non hanno un voto da quel giudice.
    codice:
    id_giudice = RS("id_giudice") -> questo è valorizzato in precedenza
    
    sql="SELECT        count(candidati.id_candidato) AS QuantiSono " &_
           "FROM           candidati " &_
           "LEFT JOIN     voti " &_
           "ON               candidati.id_candidato = voti.id_candidato " &_
           "WHERE         voti.id_giudice <> id_giudice"

    La seconda query mi dovrebbe mostrare, nel profilo di un certo giudice, i candidati che non hanno un voto da quel giudice.
    codice:
    id_giudice = RS("id_giudice")
    
    sql="SELECT        candidati.id_candidato " &_
           "FROM          candidati " &_
           "LEFT JOIN    voti " &_
           "ON              candidati.id_candidato = voti.id_candidato " &_
            "WHERE       voti.id_giudice <> id_giudice"
    Cosa sbaglio?

  2. #2
    ci dici anche che cosa non va?

  3. #3
    id_giudice lo devi usare come variabile, aggiungendolo come valore a sql

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    523
    la tabella voti,

    voti.GIF

    il risultato del conteggio,

    risultato.GIF

    le 2 query, creano una "vista" giudici/candidati e "interrogano" voci
    codice:
    SELECT t.id_giudice, t.g_nome, t.id_candidato, t.c_nome FROM ( 
    SELECT g.id_giudice, g.nome AS g_nome, c.id_candidato, c.nome AS c_nome
    FROM giudici g, candidati c
    ) t
    LEFT JOIN voti v
    ON t.id_giudice = v.id_giudice AND t.id_candidato = v.id_candidato
    WHERE v.id_giudice IS NULL OR v.id_candidato IS NULL
    
    
    SELECT t.id_giudice, t.g_nome, count(*) AS contatore FROM ( 
    SELECT g.id_giudice, g.nome AS g_nome, c.id_candidato
    , c.nome AS c_nome
    FROM giudici g, candidati c
    ) t
    LEFT JOIN voti v
    ON t.id_giudice = v.id_giudice AND t.id_candidato = v.id_candidato
    WHERE v.id_giudice IS NULL OR v.id_candidato IS NULL
    GROUP BY t.id_giudice, t.g_nome
    
    ad esse puoi aggiungere filtri (where) e o modificare gli esistenti
    Ultima modifica di marino51; 09-04-2020 a 13:57 Motivo: cosmesi

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 © 2024 vBulletin Solutions, Inc. All rights reserved.