select campo tabella

marco_rx

Utente Attivo
19 Dic 2010
129
0
0
Salve io ho alcune tabelle strutturate in questo modo:

+------+----------+-------+-------+
| art_id | art_titolo | aut_id | cat_id | => art
+------+----------+-------+-------+
+-------+----------+
| aut_id | aut_nome | => aut
+-------+----------+
+-------+----------+
| cat_id | cat_nome | => cat
+-------+----------+

aut_id e cat_id della prima tabella fanno riferimento ad aut_id e cat_id delle altre due. Io avrei bisogno di recuperare tutti i record delle tabelle con un cat_id specifico. Per fare ciò mi basterebbe una clausola come: WHERE art.cat_id = 2; Però cat_id può contenere più valori separati da una virgola (ad esempio 1, 2) quindi la clausola precedente mi estrarrebbe solo i record con valori singoli. Quello che volevo sapere è: come posso recuperare sia i campi singoli che quelli multipli?
Ho provato anche con query del tipo
Codice:
SELECT *
FROM art, aut, cat
WHERE art.aut_id = aut.aut_id
AND art.cat_id = cat.cat_id
AND port_articoli.cat_id = 2
OR art.cat_id LIKE "%2, %"
OR art.cat_id LIKE "%, 2, %"
OR art.cat_id LIKE "%, 2%"
ma non non ho risolto niente
Qualche idea? (sperando che si capisca quello che ho scritto)
 
Ultima modifica:

tiberi72

Nuovo Utente
29 Apr 2011
16
0
0
innanzitutto per chiarezza di lettura (e perche' non ricordo mai le priorita' tra gli operatori logici...) io metterei una parentesi tonda in questo modo
Codice:
SELECT *
FROM art, aut, cat
WHERE art.aut_id = aut.aut_id
AND art.cat_id = cat.cat_id
AND (port_articoli.cat_id = 2 
OR art.cat_id LIKE "%2, %"
OR art.cat_id LIKE "%, 2, %"
OR art.cat_id LIKE "%, 2%")
se questa e' la giusta sequenza logica, perche' non capisco da dove viene port_articoli
comunque considera che la tua query estrae anche un numero che inizia o finisce con 2 (esempio 12 o 21)...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a scriverla in questo modo, salvo il mio '?'

SELECT *
FROM art AS ar, aut AS au, cat AS ca
WHERE ar.aut_id = au.aut_id
AND ar.cat_id = ca.cat_id
AND ???

anch'io non capisco quale sia la tabella port_articoli ? è un errore di scrittura? oppure è un'altra tabella?
(le tabelle l'hai fatte tu?)
se è un'altra tabella devi metterla nella select
FROM art AS ar, aut AS au, cat AS ca, porta_articoli AS pa
per cui nella where
pa.cat_id=2

poi per le parentesi devi vedere come vuoi dare la precedenza
 

marco_rx

Utente Attivo
19 Dic 2010
129
0
0
Si scusate port_articoli sarebbe "art", quindi la query sarebbe questa:
Codice:
SELECT *
FROM art, aut, cat
WHERE art.aut_id = aut.aut_id
AND art.cat_id = cat.cat_id
AND port_articoli.cat_id = 2
OR art.cat_id LIKE "%2, %"
OR art.cat_id LIKE "%, 2, %"
OR art.cat_id LIKE "%, 2%"

comunque considera che la tua query estrae anche un numero che inizia o finisce con 2 (esempio 12 o 21)...
Infatti il mio problema era proprio questo, se devo recuperare una categoria con id 2 non dovrebbe uscirmi pure 12, 20 ecc... Ho aggiunto le virgole nella ricerca proprio perchè volevo evitare questo. Comunque adesso provo con le parentesi e vi faccio sapere
 

marco_rx

Utente Attivo
19 Dic 2010
129
0
0
Ho provato usando le parentesi e funziona perfettamente. Grazie mille :D
ciao
se il tuo problema e che cerca 12 22 20... e tu vuoi solo 2, domanda: a che ti servono allora gli or coi like?
Si io voglio selezionare solo gli articoli che sono nella categoria con id 2, ma se non usassi i like gli articoli con più categorie (es. 1, 2, 3) non verrebbero selezionati pur appartenendo alla categoria 2.
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [ASP] SALVARE VALORE SELECT OPTION SU CAMPO TABELLA ACCESS Classic ASP 9
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
M [PHP] Drop down in campo select PHP 1
G [Javascript] Campo a comparsa di select Javascript 0
T PHP+MYSQL: una select che cerchi un campo vuoto PHP 7
F [MySQL] Select con due condizioni su uno stesso campo MySQL 7
M Aggiungere input text dopo aver selezionato un campo da una select option Presentati al Forum 0
P Aggiungere campo input da una select jQuery 1
L Scrivere valori nel campo INPUT TEXT a seconda della SELECT Javascript 0
M Campo Select con dati da DB PHP 1
P Campo select e validazione conjs Javascript 0
P controllo campo select nel form Javascript 6
G Inserire un campo mysql in un select per form PHP 3
G selezionare i valori di un campo select PHP 2
O la select per prendere dati da un campo ENUM ripete dieci volte i valori PHP 2
C recupero campo da database in base a scelta select Classic ASP 1
I [javascript] memorizzare selezioni di un campo select di un modulo Javascript 1
R Scorrere una SELECT con un campo testo Classic ASP 6
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
otto9due Ordinare option di una select Javascript 5
W MySQL ciclo in SELECT MySQL 0
W MySQL SELECT list dinamica MySQL 0
M Select Option dentro una Table jQuery 2
G Colorare menu select attraverso ricerca php PHP 0
L problema con query select PHP 2
F menù select dinamico da db in php PHP 3
D popolare campi tra th alla select PHP 36
M Estrarre valore con SELECT COUNT PHP 0
L Select Dinamiche...da txt? PHP 3
E Php select option e ajax PHP 23
R Select concatenata che non funziona la seconda volta Ajax 3
L select join e sottrazione punti PHP 13
L input dati con inser into select ? PHP 4
V hierarchy-select jQuery 0
Emix Select concatenate php sql ajax PHP 2
F query e form con select multipla PHP 17
T recupero valori select multipla da android Javascript 3
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
Tommy03 Select in ordine per numero di record MySQL 7
T problema con select dinamica con jquery Javascript 0
J Far comparire e scomparire un div con un select Javascript 1
M Opzioni select da 1 a 200 PHP 0
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
C input in sostituzione della select PHP 2
G Insert into select - Aiuto MySQL 0
max1974 autocomplete trigger select jQuery 0
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
M Estrarre dati da una select HTML PHP 3
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
T [PHP] Autocompilazione input multiple da una select PHP 1

Discussioni simili