Prova
A volte nelle tue query potresti voler visualizzare tutti i record di una tabella, insieme ai record corrispondenti di un'altra tabella. A questo scopo, puoi creare un outer join.
Gli inner join visualizzano i dati solo quando esiste un ID corrispondente in entrambe le origini dati connesse. Ad esempio, se vuoi visualizzare le quantità e i prodotti venduti, puoi creare un inner join tra le tabelle Prodotti e Dettagli ordine. Quando esegui la query, vengono restituiti solo i prodotti inclusi in ordini, visualizzati quindi in entrambe le tabelle.
Al contrario, gli outer join restituiscono tutti i dati di un'origine dati e alcuni dei dati di un'altra tabella o origine dati.
Se, ad esempio, vuoi visualizzare i prodotti che non sono stati venduti, puoi creare una query che mostri l'ID prodotto dalla tabella Prodotti e tutti gli ID ordine corrispondenti dalla tabella Dettagli ordine. I prodotti per cui non esistono record corrispondenti nella tabella Dettagli ordine restituiscono il nome del prodotto senza valore per il campo ID ordine.
Left outer join e right outer join
In un outer join la tabella che visualizza tutti i record è chiamata tabella di base. La tabella che visualizza solo alcuni record (quelli corrispondenti) si chiama tabella secondaria.
La finestra di dialogo Proprietà join descrive gli elementi visualizzati con i diversi tipi di join:
Supponi di aver creato una query per visualizzare i prodotti acquistati dai tuoi clienti. I campi di output sono Nome prodotto, ID ordine e Quantità.
-
Inner join. Include solo le righe (record) in cui i campi collegati da entrambe le tabelle sono uguali, ad esempio solo i prodotti a cui sono associati ordini.
-
Left outer join. Include tutti i record della tabella in Nome tabella sinistra e solo i record della tabella in Nome tabella destra in cui i campi collegati sono uguali, ad esempio tutti gli ordini, ma solo le quantità e gli ID prodotto per gli ordini a cui sono associati prodotti.
-
Right outer join Include tutti i record della tabella in Nome tabella destra e solo i record della tabella in Nome tabella sinistra in cui i campi collegati sono uguali, ad esempio tutti i prodotti, anche quando non esistono ordini, caso in cui vengono visualizzati valori vuoti nei campi ID ordine e Quantità.
Come puoi vedere in questi esempi, è importante identificare quale tabella si trova a sinistra e quale a destra e queste posizioni possono essere diverse dalla disposizione delle tabelle nell'intervallo di query. Per determinare quali dati otterrai dalla query, leggi attentamente il testo nella finestra di dialogo Proprietà join.
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.
Se riesce a rilevarle o dedurle, Access può mostrare le relazioni per le origini dati.
2. Aggiungere un join
-
Se non noti alcuna relazione tra le origini, aggiungi un join. Trascina il campo desiderato in un'origine dati al campo corrispondente in un'altra origine dati. La tabella da cui esegui il trascinamento è quella che verrà visualizzata a sinistra nella finestra di dialogo Proprietà join. Per impostazione predefinita, Access crea un inner join. Se preferisci un outer join, modificane il tipo.
3. Modificare un join
-
Fai doppio clic sulla linea che rappresenta il join che vuoi modificare.
-
Per creare un outer join, nella finestra di dialogo Proprietà join seleziona la seconda opzione o la terza. Quindi, seleziona OK.
Ricorda di identificare con precisione quale tabella è la tabella di base, ovvero quella da cui vengono visualizzati tutti i record.
4. 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.