Video
All'interno del video
Il messaggio "outer join ambiguo" viene visualizzato quando Access determina che la query potrebbe fornire risultati diversi in base al join eseguito per primo. Per eseguire la query, è necessario apportare alcune modifiche. La soluzione migliore consiste in genere nel suddividere la query in parti. In altre parole, impostarlo in modo che almeno uno dei join venga eseguito in una query "figlio" più piccola, che viene quindi collegata ad altre tabelle o query in una query "padre". Access quindi esegue prima i join nella query figlio, quindi i join nella query padre per ultimi, eliminando l'ambiguità.
A seconda del quantità di tabelle presenti nella query, potrebbe essere necessario creare diverse query figlio per evitare outer join ambigui. Questo video mostra un semplice esempio di tre tabelle, in cui due tabelle equi join sono separate in una query figlio e quindi l'outer join in una terza tabella viene eseguito nella query padre. Ecco i passaggi di base, che presuppongono che si abbia già familiarità con la creazione di una query di selezione semplice:
-
Crea una nuova query figlio che contiene le tabelle che vuoi unire per prime (nel video queste sono le tabelle Società e Persone).
-
Nella query figlio fare doppio clic sui campi di output necessari in modo che vengano visualizzati nella griglia della query.
Importante: Assicurarsi di includere il campo join della query originale. Nell'esempio video, Società è stato aggiunto alle aree geografiche usando il campo REGIONID, quindi abbiamo incluso RegionID nella griglia della query della query figlio.
-
Salvare e chiudere la query figlio e aprire la query originale in visualizzazione Struttura. Questa diventerà la query padre.
-
Eliminare le tabelle aggiunte alla query figlio e quindi aggiungere la query figlio (Struttura > Aggiungi tabelle (Mostra tabella in Access 2013 )> Query oppure trascinare semplicemente la query figlio dal riquadro di spostamento alla query padre.
-
Nella query padre, stabilisci il join come prima, solo questa volta alla query figlio.
-
Aggiungere i campi di output della query figlio alla griglia della query.
-
Salvare ed eseguire la query padre.
Regola generale per outer join ambigui
Gli outer join ambigui si verificano quando sono presenti due o più join in una query e uno di essi è un outer join che punta verso un equi-join o sono presenti due outer join che puntano l'uno verso l'altro, ad esempio queste due configurazioni di join sono ambigue e devono essere suddivise in query separate:
Tabella1 --> Tabella2 --- Tabella3
Table1 --> Table2 <-- Table3
Gli outer join che puntano nella stessa direzione o lontano da altri outer join o equi-join, sono OK:
Tabella1 --> Tabella2 --> Tabella3
Tabella1 <-- Tabella2 --> Tabella3
Tabella1 <-- Tabella2 --- Tabella3
Per altre informazioni sulla creazione di query, vedere Introduzione alle query o Creare una query di selezione semplice.