PDA

View Full Version : [SQL] Confronto dati in una sola istruzione?


Finalfire
13-09-2007, 12:47
Salve ragazzi,
Ho un problemino con un'istruzione SQL che non riesco proprio a risolvere :(
Ho due tabelle, prodotto e temporale.
prodotto e' formata da cod, descrizione e temporale e' formata da prodotto, quantita.
Ora, controllando la tabella prodotto, dovrei controllare se nella tabella temporale esista lo stesso codice che si trova nella prima tabella.
Un esempio potrebbe essere:

prodotto:
1 mela
2 pera
3 fragola
---------
temporale
2 24

Come potete vedere, nella tabella temporale esiste gia' il prodotto 2 con quantita 24.
Dopo un po', sono arrivato a questa query:

SELECT p.cod,p.descrizione, IF(p.cod = t.prodotto, t.quantita, '') AS criterio
FROM prodotto p, temporale t;

Funziona soltanto quando nella tabella temporale esiste gia' un prodotto, altrimenti mi ritorna un empty set, cosa che non riesco a capire :(
Qualcuno di voi sarebbe cosi' gentile da darmi una mano? Ho pensato e ripensato ma non riesco proprio a capire dove sbagli (sicuramente di concetto ma >.<).
Grazie!

isAlreadyInUse
13-09-2007, 14:18
LEFT OUTER JOIN

isAlreadyInUse
13-09-2007, 14:59
Alchè tu dirai..."Puoi essere piu chiaro" :D



SELECT P.COD,P.DESCRIZIONE,IFNULL(T.QUANTITA,0) FROM PRODOTTO P
LEFT OUTER JOIN (TEMPORALE T) ON (P. COD=T.PRODOTTO)

Finalfire
13-09-2007, 17:30
Alchè tu dirai..."Puoi essere piu chiaro" :D

SELECT P.COD,P.DESCRIZIONE,IFNULL(T.QUANTITA,0) FROM PRODOTTO P
LEFT OUTER JOIN (TEMPORALE T) ON (P. COD=T.PRODOTTO)

Guarda, proprio verso le 13.30, mentre giravo in lungo e in largo, ho cercato di documentarmi meglio sulle OUTER JOIN e l'avevo trovata xD
Grazie comunque per aver risposto