Prova
Spesso, per ottenere le risposte necessarie, puoi creare query che raccolgono informazioni da più tabelle o da una combinazione di tabelle e query.
Introduzione ai join
A volte, per rispondere a una domanda devi usare dati da più origini (tabelle o query). Ad esempio, potresti voler determinare quanti clienti di una certa area geografica hanno ordinato un prodotto specifico.
Quando aggiungi più origini dati, Access usa le rispettive relazioni definite esistenti o crea join tra le origini ai fini della query. Un join è semplicemente un tipo di relazione tra origini dati in una query.
Nota: I join sono temporanei e sono associati solo alla query. Se crei frequentemente lo stesso join tra tabelle, potresti voler creare una relazione permanente tra le tabelle.
Inner join
i join sono per la maggior parte inner join. Questi sono il contrario degli outer join, descritti in Creare query con outer join.
Un inner join restituisce dati da un'origine solo quando trova record corrispondenti nell'altra. Se, ad esempio, esegui una query per ottenere informazioni su prodotti e ordini, visualizzerai solo i dati per i prodotti per cui esiste un ordine corrispondente.
Self-join
Un self-join unisce due copie della stessa tabella o query. Puoi usare questo tipo di join per combinare record della stessa tabella quando i campi collegati contengono valori corrispondenti.
Supponi, ad esempio, che una tabella Dipendenti elenchi tutti i dipendenti della tua organizzazione, inclusi i responsabili. La tabella contiene un campo Dipende da, che include l'ID del responsabile del dipendente.
ID |
Cognome |
Nome |
Dipende da |
---|---|---|---|
1 |
Leonetti |
Adriana |
5 |
2 |
Russo |
Lorenzo |
|
3 |
Mazzanti |
Albertino |
10 |
4 |
Sergienko |
Mariya |
5 |
5 |
Barese |
Carmelo |
2 |
6 |
Romani |
Nazzareno |
10 |
7 |
Capon |
Cataldo |
10 |
8 |
Guissani |
Laura |
10 |
9 |
Hellung-Larsen |
Anne |
5 |
10 |
Fanucci |
Giorgia |
3 |
Per trovare il nome del responsabile di un dipendente, trova il dipendente nella tabella, trova l'ID responsabile nel campo Dipende da e quindi cerca l'ID del responsabile nello stesso campo Dipendenti. Ad esempio, Adriana dipende dal responsabile il cui ID dipendente è 5, ovvero Carmelo Barese.
Per automatizzare questa attività, aggiungi due volte la tabella Dipendenti alla tua query e quindi crea un self-join. Quando aggiungi l'origine dati una seconda volta, Access aggiunge _1 al nome della seconda istanza. Ad esempio, se aggiungi due volte la tabella Dipendenti, la seconda istanza si chiamerà Dipendenti_1. Per visualizzare i nomi dei responsabili per ogni dipendente, puoi creare un join tra il campo Dipende da nella tabella Dipendenti e il campo ID dipendente nella tabella Dipendenti_1.
1. Aggiungere origini dati
-
Seleziona Crea > Struttura query.
Aggiungere tutte le tabelle e le query necessarie come origini dati. (Non preoccuparti. Se ne dimentichi una, avrai comunque la possibilità di aggiungere altre origini dati in un secondo momento.
Le origini dati possono includere tabelle da cui vuoi visualizzare informazioni (come una tabella di prodotti) e tabelle contenenti informazioni che devi usare per i criteri.
Ricorda che anche le query salvate esistenti sono disponibili come origini dati. Ad esempio, se hai già creato una query per trovare tutti gli ordini per un mese specifico, usa questa query insieme alla tabella dei prodotti per mostrare tutti i prodotti venduti in un determinato mese.
2. Creare un join tra le origini dati correlate
-
Per aggiungere un join, trascina un campo da un'origine dati a un campo in un'altra origine dati. Per impostazione predefinita, Access crea un inner join.
Per la maggiore parte delle relazioni, Access crea un inner join. Inoltre, se hai specificato che deve essere applicata l'integrità referenziale, questa è inclusa. Tuttavia, in alcuni casi Access non crea il join che ti serve. Ad esempio, se aggiungi query esistenti alla nuova query e non hai creato relazioni, Access non crea automaticamente i join.
3. Completare la query
-
Segui i normali passaggi per creare una query: aggiungi campi di output, aggiungi eventuali criteri ed esegui o salva la query. Per scoprire come, vedi Creare query di base.