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.