Esempio 3 (connettivi logici in WHERE)

Creazione della relazione Movimento

Per procedere alla esecuzione della query prevista in questo esempio sarà prima necessario creare una nuova tabella di nome "Movimento":

Descrizione dei campi (attributi) della tabella (relazione):

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

Dati da inserire nella tabella

Descrizione della query

Estrarre nome e indirizzo dei correntisti che hanno un movimento in data 27-1-99

La query da realizzare

SELECT nome, indirizzo FROM conto_corrente, movimento WHERE data_mov = 27-1-99 AND conto_corrente.numero_cc = movimento.numero_cc

La procedura da seguire in Access

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.

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

La struttura della query in Access

Risultato della query

Il codice SQL generato

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#));

La clausola INNER JOIN

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.