- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- mysql where multiplo su singolo campo
-
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 * FROMtabella
WHEREcorso
='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
-
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.
-
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
-
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.
-
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