Gestire i dati con le query

Creare query con più origini dati

Il browser in uso non supporta le funzionalità video. Installare Microsoft Silverlight, Adobe Flash Player o Internet Explorer 9.

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.

Screenshot delle tabelle Prodotti e Ordini

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.

Aggiungi tutte le tabelle e le query necessarie come origini dati. Non preoccuparti, se ne dimentichi una potrai aggiungere altre origini dati più avanti.

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.

Altre informazioni

Formazione su Excel

Formazione su Outlook

Questo video descrive come creare una query di selezione con più origini dati.

Capirai come usare i "join" per creare una corrispondenza tra più origini.

E scoprirai i diversi tipi di join disponibili.

La creazione di una query di selezione che usa più origini dati segue gli stessi passaggi di base della creazione della stessa query con una sola origine dati.

Dovrai aprire Progettazione query, selezionare le tabelle o le query e aggiungere i campi.

Ma c'è una piccola variante.

Quando esegui una query su più origini per i dati, devi creare una corrispondenza tra ogni origine.

Ad esempio, se vuoi determinare i prodotti inseriti in un set di ordini, devi creare la corrispondenza tra gli ordini e i rispettivi prodotti.

Per creare queste corrispondenze, devi usare i cosiddetti "join".

Un JOIN confronta i dati in due campi comuni, uno da ogni origine dati.

Il join controlla la corrispondenza dei dati in ogni campo.

Ad esempio, il tipo più comune di join restituisce i dati di un campo solo quando trova un valore corrispondente nell'altro ed è così che puoi determinare il numero di prodotti in ogni ordine.

Un altro tipo di join restituisce TUTTI i dati da un campo, ma solo i dati CORRISPONDENTI dall'altro.

In questo esempio la query indica quali ordini non contengono un determinato prodotto.

Ora, quando hai creato le relazioni tra le tabelle, Access ha creato anche un JOIN per ogni relazione.

Dato che Access usa le relazioni come MODELLI per i join, in genere i campi collegati saranno le tue chiavi primarie ed esterne.

Ma non è necessariamente così. Puoi creare join anche tra origini non correlate.

Se hai invece due origini correlate e le aggiungi a Progettazione query, vedrai qualcosa di simile a una relazione, ma ricorda che non lo è. Access sta solo indicando il tipo di relazione che ha usato come MODELLO per il join.

Se hai definito un join tra le tabelle o le query, puoi aggiungere campi da entrambe le origini.

Come puoi notare, non abbiamo aggiunto i campi collegati alla griglia di struttura. Non è necessario, perché Access li aggiunge dietro le quinte.

Puoi eseguire la query e ottenere un risultato.

Approfondiamo ora alcuni aspetti riguardo ai join, perché è bene ricordare alcuni punti chiave.

Prima di tutto, puoi impostare o modificare il tipo di join con il pulsante destro del mouse o toccando due volte la linea di join e quindi selezionando Proprietà join.

Queste impostazioni controllano il tipo di join nella query e questi sono i tipi di join più comuni.

Questa opzione crea un "inner join". Si tratta del tipo di join che restituisce dati da ENTRAMBE le tabelle.

Access crea questo tipo di join ogni volta che crei una relazione.

La seconda opzione crea un "left outer join", ovvero la query restituirà TUTTI i dati dalla tabella specificata a sinistra e solo i dati CORRISPONDENTI dall'altra tabella.

La terza opzione crea un "RIGHT outer join" e sicuramente hai già indovinato cosa succederà.

La query restituirà TUTTI i dati dalla tabella specificata a destra e solo i dati CORRISPONDENTI dalla tabella a sinistra.

In genere devi usare gli outer join quando vuoi determinare i prodotti invenduti o, più generalmente, le situazioni in cui non è avvenuto qualcosa.

Ricorda che questi sono i tre tipi di join più comuni. Puoi anche usare un "cross join" e un "unequal join", ma questi non sono molto comuni.

L'altro aspetto chiave riguardo ai join è che le "relazioni" e i "join" non sono la stessa cosa.

Una RELAZIONE è un set di regole che controlla l'integrità referenziale, ovvero il modo in cui aggiungi ed elimini i dati.

Un JOIN controlla il modo in cui la query trova la corrispondenza con i dati,

ma ci sono alcune analogie.

Ad esempio, le relazioni possono avere lati (uno e molti) e anche i join possono avere lati (sinistro e destro), ma puoi usare i join solo nelle query e in modi in cui non puoi usare le relazioni.

Ad esempio, puoi eliminare i join senza danneggiare il database, ma non puoi fare la stessa cosa con le relazioni.

Puoi anche aggiungere join dove non esistono relazioni.

Ad esempio, puoi creare un join tra un campo in una tabella e un campo in una query, purché i due campi abbiano tipi di dati corrispondenti o compatibili.

Ora sai come usare i join per creare una query di selezione con più origini dati e che puoi anche impostare o modificare il tipo di join. Hai anche scoperto tutte le analogie e le differenze tra i join e le relazioni.

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×