- Home
- Categorie
- Coding e Sistemistica
- Coding
- Query per ricavare valori da "scelta multipla" o soluzione PHP
-
Query per ricavare valori da "scelta multipla" o soluzione PHP
Ciao a tutti, il titolo del tread è quantomeno dubbio perchè farei fatica a spiegarlo anche a voce. Ci provo.
Devo ricavare valori con una query che mette in JOIN più tabelle.
Dalla tabella "base" ricavo alcune informazioni sull'id che mi interessa e da li faccio partire il join alla tabella che mi interessa.
La ricerca che devo eseguire deriva da una scelta multipla esclusiva. Per intenderci faccio un esempio.
TAB FIRST
id = 1 , nome = UNO
id = 2 , nome = DUE
id = 3 , nome = TRETAB SECOND
id = 1 , id_cli = 1 , id_ricerca = 10
id = 2 , id_cli = 2 , id_ricerca = 3
id = 3 , id_cli = 1 , id_ricerca = 3
id = 4 , id_cli = 3 , id_ricerca = 5quando ho un solo valore da ricercare nessun problema
SELECT * FROM FIRST INNER JOIN SECOND on FIRST.id=SECOND.id_cli WHERE SECOND.id_ricerca = 3
risultato = DUE,UNOIl problema nasce quando voglio ricercare più id_ricerca contemporaneamente. Cioè se volessi in contemporanea avere quell' id_cli che possiede sia id_ricerca 10 che id_ricerca 3.
Spero di essermi fatto capire.
La soluzione che mi viene ora è quella di ricreare un array in PHP ch econtiene tutti gli ID con la loro id ricerca, per poi confrontarlo con il mio vettore di ricerche del programma. Fare il confronto tra vettori e solo di quelli "buoni" prendere gli id in un nuovo vettore e ridarli in pasto alla query.
C'è modo di ovviare a questo immondo giro e fare tutto in una query?
Grazie a tutti
-
Non puoi fare una cosa tipo:
SELECT * FROM FIRST INNER JOIN SECOND on FIRST.id=SECOND.id_cli WHERE SECOND.id_ricerca IN (1, 3, 5)
Dove (1, 3, 5) te lo costruisci in base ai dati del form?
-
Ciao e grazie, questa soluzione mi simulerebbe un OR, ma a me serve un AND tra gli elementi.