JOIN

Per questo argomento è meglio procedere con un esempio.

ESEMPIO
Consideriamo le tabelle delle figure 15.11 e 15.12.



FIG. 15.11



FIG. 15.12


Le due tabelle sono in relazione uno a molti, come si può vedere nella figura 15.13.



FIG. 15.13


Quando si visualizzano i dati delle due tabelle insieme, attraverso le query (che verranno studiate più avanti) il risultato è quello della figura 15.14.



FIG. 15.14


Sono visualizzati i record della tabella lato uno, TAutori che hanno almeno un libro inserito nell'archivio. Ogni autore è ripetuto se ha più di un libro: confrontare i dati delle figure 15.12, 15.13 e 15.14.
Facendo doppio clic sulla linea della relazione si accede alla finestra di dialogo "Modifica relazione", figura 15.08, nella quale si può fare un clic sul pulsante "Tipo join …", si apre la finestra di dialogo, figura 15.15.



FIG. 15.15


Il primo comando "Includi solo le righe in cui i campi collegati da entrambe le tabelle sono uguali", è quello normalmente attivo, cioè quello che si usa in tutte le relazioni, almeno di non fare una scelta diversa (manualmente). Il risultato è quello visto nella figura 15.14, che è il risultato che ci si aspetta normalmente quando si prendono i dati da più tabelle. Viene chiamato
NORMAL JOIN, join normale.

"Includi tutti i record di TAutori e solo i record di TLibri in cui i campi collegati sono uguali" è quello che viene chiamato RIGHT JOIN, join destro. In questo caso la relazione viene visualizzata da Access come nella figura 15.16.



FIG. 15.16


Alla linea della relazione si è aggiunta una freccia, in direzione di una tabella, quella freccia indica il tipo di join. Volendo visualizzare i dati delle due tabelle insieme, il risultato è quello ottenuto nella figura 15.17.



FIG. 15.17


Per capire il risultato si deve confrontare la figura 15.17 con la figura 15.14. Nella 15.17 ci sono tutti gli autori, sia che abbiano un libro in archivio, sia che non ce l'abbiano, mentre nella figura 15.14 ci sono solo gli autori con almeno un libro in archivio.

"Includi tutti i record di TLibri e solo i record di TAutori in cui i campi collegati sono uguali" è il comando che è chiamato LEFT JOIN, join sinistro. La freccia nella linea della relazione ha senso opposto a quello del join precedente, figura 15.18.



FIG. 15.18


Il risultato, volendo visualizzare i dati delle due tabelle insieme, è quello della figura 15.19.



FIG. 15.19


Sono visualizzati tutti i record della tabella TLibri. In questo caso, le figure 15.19 e 15.14 rappresentano gli stessi dati, ma questo succede solo perché non ci sono libri senza autori nella tabella TLibri. Se esistesse un libro senza autore, nella tabella TLibri, questo sarebbe visualizzato solo con il left join, non negli altri casi.