Ciao a tutti,
Non sono una cima sulle query troppo complesse e dopo un pomeriggio ci rinuncio![]()
Devo eseguire una INNER JOIN tra tre tabelle con piu clausole where, es :
Tabella clienti
idcliente
ragione
piva
idzona
ecc
Tabella macchine
idcliente
idmacchina
nome macchina
motore
anno
marca
Tabella zone
idzona
zona
Ho fatto una cosa di questo tipo
la ricerca puo' essere fatta per una o piu zone (parte finale),Codice PHP:$sSQL = "
SELECT *
FROM CLIENTI AS C
INNER JOIN MOVIMENTIMACCHINARI AS M
INNER JOIN ZONE AS Z ON C.IDCLI = M.IDCLI
AND C.IDZONA = Z.IDZONA
WHERE C.RAGSOCCLI LIKE 'C%'
AND C.MARCA = 'VOLVO'
AND C.MOTORE = '19'
AND C.PROVCLI = 'Z1'
OR C.PROVCLI = 'Z2'
OR C.PROVCLI = 'Z3'
OR C.PROVCLI = 'Z4'
OR C.PROVCLI = 'Z5'
OR C.PROVCLI = 'Z6'
OR C.PROVCLI = 'Z7'
OR C.PROVCLI = 'Z8'
OR C.PROVCLI = 'Z9'
GROUP BY C.IDCLI
";
per marca, per modello
oppure per un qualsiasi dato della tabella clienti. in questo caso la ragione sociale.
Il problema è questo :
La ricerca per una o piu zone nel caso OR C.PROVCLI = '' sia NULL funziona stranamente correttamente, sono gli altri 2 o 3 parametri where che non vengono filtrati,
e non ci sto capendo piu il perchè![]()
Ringrazio anticipatamente tutti e buon lavoro.
( La query è leggermente diversa a lavoro ma non me la ricordavo tutta)

)
Rispondi quotando