MySQL Forums
Forum List  »  Italian

JOIN
Posted by: Lori Emiliano
Date: December 29, 2008 04:36AM

Buongiorno a tutti,
Mi chiamo Emiliano ed è la prima volta che scrivo su questo forum per un problema con MySQL.
Il problema riguarda i join. Per semplicità scrivo direttamente il codice:

select c.cod_barre,v.cod_barre
from vendita c left join (vendita v) on (c.cod_barre=v.cod_barre)
where
v.cod_barre<>931;

Dunque ho due tabelle identiche (individuate da differenti alias) e sulla seconda non prendo in considerazione tutte le tuple che contengono nel campo cod_barre il valore intero 931.
A questo punto mi aspetterei di ricevere in ritorno una tabella con tutti i valori di c.cod_barre compreso il valore 931 ed in corrispondenza di questi trovare un valore null nel campo v.cod_barre.
Invece mi ritrovo con la tabella finale troncata delle righe con il valore 931. Inutile dire che il valore 931 esiste in entrambe le tabelle e che è stato preso ad hoc per questo esempio. E' come se l'aver eliminato il valore 931 nella tabella v, comportasse in automatico l'eliminazione dalla tabella c. Però non ha senso.
La tabella c dovrebbe contenere ancora tutti i valori fino a 931, la v fino a 930, e come risultato dovrei avere la riga
931 -->null
Inoltre mi sembra proprio che questo avvenga ogni volta che nel join ci sono due tabelle gemelle.
Qualcuno mi sa dare una spiegazione?

Options: ReplyQuote


Subject
Views
Written By
Posted
JOIN
5960
December 29, 2008 04:36AM
2932
January 15, 2009 04:06AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.