Per procedere alla esecuzione della query prevista in questo esempio sarà prima necessario creare una nuova tabella di nome "Movimento":
Nome |
Tipo |
Altre proprietà |
Numero_cc |
Numerico |
Dimensione campo: intero lungo; Richiesto: No; Indicizzato: No |
Data_mov |
Data/ora | Dimensione campo: data in cifre; Richiesto: No; Indicizzato: No |
Numero_mov |
Numerico |
Dimensione campo: intero lungo; Richiesto: No; Indicizzato: No |
Importo |
Numerico |
Dimensione campo: intero lungo; Formato: valuta; Richiesto: No; Indicizzato: No |
Causale |
Testo |
Dimensione campo: 1; Richiesto: Si; Indicizzato: No |
Estrarre nome e indirizzo dei correntisti che hanno un movimento in data 27-1-99
SELECT nome, indirizzo FROM conto_corrente, movimento WHERE data_mov = 27-1-99 AND conto_corrente.numero_cc = movimento.numero_cc
Creare una nuova query, aggiungere le tabelle conto_corrente e
movimento. Impostare il criterio di selezione sulla data.
La condizione SQL "conto_corrente.numero_cc = movimento.numero_cc" viene
automaticamente interpretata da Access come un Join.
L'operazione di JOIN combina due relazioni in una sola concatenando
le tuple che soddisfano la condizione di Join.
La relazione risultante ha grado pari alla somma dei gradi delle relazioni di partenza
Scegliendo dal menu Visualizza l'opzione 'Visualizzazione SQL' si potrà esaminare il codice SQL prodotto dall'interazione grafica con il programma:
SELECT conto_corrente.Nome, conto_corrente.Indirizzo
FROM conto_corrente INNER JOIN Movimento ON conto_corrente.Numero_cc = Movimento.Numero_cc
WHERE (((Movimento.Data_mov)=#1/27/99#));
Access ha interpretato la corrispondenza dei numeri di conto
corrente come una relazione di JOIN.
I join interni combinano i record da due tabelle ogni volta che in un campo comune ad
entrambe le tabelle vengono individuati valori corrispondenti.
Esempio: è possibile utilizzare l'operazione INNER JOIN con le tabelle Reparti e Impiegati per selezionare tutti gli impiegati di ciascun reparto. Al contrario, per selezionare tutti i reparti, anche se alcuni non hanno impiegati, oppure per selezionare tutti gli impiegati, anche se alcuni non sono assegnati ad un reparto, è possibile utilizzare l'operazione LEFT JOIN o RIGHT JOIN per creare un join esterno.