mysql query

devo fare una query che mi stampi tutte le righe escluse quelle che:

1 abbiano nella prima colonna un valore diverso da 1 e 2

2 abbiano nella seconda colonna un valore diverso da x

e alla fine aggiungere i vari join tipo...table1.colonna1 = table2.colonna1

si può fare? io ho fatto una cosa tipo questa :

where
g.quantita_magazzino <> 0 AND g.anno06 <> 0 AND g.anno07 <> 0 OR 

m.cat_filtro <> "81" OR
m.cat_filtro <> "82" OR
m.cat_filtro <> "83" OR
p.codiceABarre = m.codiceABarre AND
p.codiceABarre = g.codiceABarre AND
g.cod_filiale = fi.cod_filiale

ma non risulta mi da una marea di righe che non mi servono

cioè quello che mi chiedo è in pratica se si può fare in modo che nella clausola where le varie operazioni si possano diveidere a gruppi tipo le espressioni algebriche  (a+b)(c-d)

inviato 9 anni fa
Mandalayawantico
X 0 X

nella WHERE puoi usare le parentesi per dare un ordine di esecuzione agli operatori booleani e di confronto

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

scusami se rispondo solo ora

ancora una cosa...io voglio togliere dalla select tutte quelle righe che abbiano CONTEMPORANEAMENTE i seguenti valori nelle seguenti righe:

quantita = 0 ; anno06 = 0; anno07 = 0;

quindi se per esempio la mia riga è

quantità = 0; anno06 = 0; anno07 = 1; questa la dovrei tenere

devo scrivere così? (where quantità <> "0" AND anno06 <> "0" AND anno07 <> "0") non è che così mi toglie tutte le righe che abbiano a zero anche solo una della tre colonne specificate?

risposto 9 anni fa
Mandalayawantico
X 0 X

devi mettere:

[tt]WHERE (quantità <> 0 OR anno06 <> 0 OR anno07 <> 0)[/tt]

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

un'altra cosa...

ho notato che i valori NULL vengono considerati  come gli 0 quindi in pratica nella mia query lui considera anche dove c'è NULL come se fosse uno zero e scarta più righe di quante dovrebbe

come posso fare per evitare che succeda ?

risposto 9 anni fa
Mandalayawantico
X 0 X

O togli i NULL dalla tabella oppure usi un'ulteriore condizione: WHERE ... nome_campo IS NOT NULL

risposto 9 anni fa
Gianni Tomasicchio
X 0 X
O togli i NULL dalla tabella oppure usi un'ulteriore condizione: WHERE ... nome_campo IS NOT NULL

non ho capito come...se metto dentro al where nome_campo is not null lui non prende tutte quelle righe che hanno il campo diverso da null? invece io devo prendere anche quelle con il campo uguale a NULL

risposto 9 anni fa
Mandalayawantico
X 0 X

allora metti un: [tt]OR nome_campo IS NULL[/tt]

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

allora metti un: [tt]OR nome_campo IS NULL[/tt]

 :bye:

dici così?

where
(g.quantita_magazzino <> 0 OR g.anno06 <> 0 OR g.anno07 <> 0 OR g.anno06 OR g.anno06 is null OR anno07 is null)
risposto 9 anni fa
Mandalayawantico
X 0 X

si, anche se non capisco questo pezzo: "OR g.anno06 OR g.anno06"

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

ops ho scritto male

cmq non funziona lo stesso...bho ci deve essere qualche errore da qualche altra parte  :-\

risposto 9 anni fa
Mandalayawantico
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda