• User

    mysql where multiplo su singolo campo

    Ciao,

    mi sono bloccato su una query in mysql dopo where
    avendo una tabella composta da id (univoco), cognome, corso,data
    ho creato questa query
    select * FROM tabella WHERE corso ='1' and corso = '2'
    ma il risultato è niente.
    Mettendo la condizione OR io andrei ad estrarre tutti i record che hanno il corso = 1 (e ne troverò, ad esempio 10) OPPURE che lo hanno = 2 (e ne troverò altri 20...)
    e sò per certo che 5 hanno fatto entrambi i corsi. Il risultato finale sarà una lista di 30 record, i 10 dell'1 ED i 20 dell'2. ma se volessi solo i 5?

    Grazie


  • ModSenior

    Ciao,
    cosi sicuramente non funziona, perchè tu cerchi un record che abbia corso = 1 e contemporaneamente = a 2. E' impossibile perchè o 1 o è 2.
    Quello che vuoi fare tu è controllare nella tabella che sia sia un record con corso = 1 ed un record con corso = 2. Per cui dovresti raggruppare, o fare una subquery ad esempio... Dipende da com'è strutturato tutto il database e da cosa vuoi nello specifico.


  • User

    Esatto, un record contiene solo un tipo di corso. Nello specifico vorrei l'elenco delle persone che hanno effettuato i due corsi (dico 2 perchè è un limite che mi sono imposto io) con un risultato simile:

    cognome data corso

    Pietro 1/1 1

    Pietro 1/2 2

    marco 1/2 1

    marco 1/2 2

    Ciao:ciauz:


  • ModSenior

    Ma hai una sola tabella? In teoria dovresti averne almeno 2, una con i nomi degli studenti e una con id_studente e corso fatto.


  • User

    in verità è cosi, ho una tabella solo anagrafica ed una tabella con tutti i corsi fatti dalla persona, collegati con un id, ma query non cambia. io avrndo i corsi (1,2,3,,,n) devo trovare le persone che hanno partecipato a 2 corsi. Sto estraendoli con php e devo mostrare a video l'elenco dei nomi, se usassi OR otterrei lo stesso risultato, ma come nell'esempio prima non voglio 30 nominativi, ma solo i 5 che hanno fatto entrambi i corsi