Full outer join

Uno dei tipi di join disponibili nella finestra di dialogo Merge in Power Query è un full outer join, che inserisce tutte le righe delle tabelle a sinistra e a destra. Altre informazioni: Panoramica delle operazioni di merge

Esempio di outer join completo.

Screenshot che mostra una tabella a sinistra con colonne Date, CountryID e Units. La colonna CountryID evidenziata contiene valori pari a 1 nelle righe 1 e 2, 3 nella riga 3 e 2 nella riga 4. Una tabella corretta contiene le colonne ID e Country. La colonna ID evidenziata contiene valori pari a 1 nella riga 1 (denoting USA), 2 nella riga 2 (denoting Canada), 3 nella riga 3 (denoting Panama) e 4 (denoting Spain) nella riga 4. Una tabella sotto le prime due tabelle contiene le colonne Date, CountryID, Units e Country. Tutte le righe vengono riorganite in ordine numerico in base al valore CountryID. Il paese associato al numero CountryID viene visualizzato nella colonna Country. Poiché l'ID paese per la Spagna non è contenuto nella tabella a sinistra, viene aggiunta una nuova riga e i valori di data, ID paese e unità per questa riga sono impostati su Null.

Questo articolo usa dati di esempio per illustrare come eseguire un'operazione di unione con l'outer join completo. Le tabelle di origine di esempio per questo esempio sono:

  • Vendite: questa tabella include i campi Date, CountryID e Units. CountryID è un valore numerico intero che rappresenta l'identificatore univoco della tabella Paesi .

    Screenshot della tabella Sales contenente le colonne Date, CountryID e Units, con CountryID impostato su 1 nelle righe 1 e 2, 3 nella riga 3 e 2 nella riga 4.

  • Paesi: questa tabella è una tabella di riferimento con i campi ID e Paese. Il campo ID rappresenta l'identificatore univoco per ogni record.

    Screenshot della tabella Paesi contenente le colonne ID e Paese, con ID impostato su 1 nella riga 1, 2 nella riga 2, 3 nella riga 3 e 4 nella riga 4.

In questo esempio vengono unite entrambe le tabelle, con la tabella Sales come tabella sinistra e la tabella Countries come quella destra. Il join viene eseguito tra le colonne seguenti.

Campo della tabella Sales Campo della tabella Paesi
CountryID ID

L'obiettivo è creare una tabella simile alla seguente, in cui il nome del paese viene visualizzato come nuova colonna Country nella tabella Sales . A causa del funzionamento del full outer join, tutte le righe delle tabelle di sinistra e destra vengono visualizzate, indipendentemente dal fatto che vengano visualizzate solo in una delle tabelle.

Tabella finale per l'operazione full outer join.

Screenshot della tabella full outer join finale con Date, Un CountryID e Units derivati dalla tabella Sales e una colonna Country derivata dalla tabella Countries. È stata aggiunta una quinta riga per contenere dati dalla Spagna, ma tale riga contiene null nelle colonne Date, CountryID e Units poiché tali valori non esistevano per Spagna nella tabella Sales.

Per eseguire un outer join completo:

  1. Selezionare la query Sales e quindi merge di query.
  2. Nella finestra di dialogo Unione selezionare Paesi in Tabella destra per l'unione.
  3. Nella tabella Sales selezionare la colonna CountryID.
  4. Nella tabella Paesi selezionare la colonna ID.
  5. Nella sezione Join kind (Tipo di join) selezionare Full outer (Completo esterno).
  6. seleziona OK.

Finestra di dialogo Unione che mostra i risultati della procedura di outer join completa precedente.

Nota

È possibile unire più colonne selezionando e tenendo premuto CTRL e quindi selezionando le colonne.

Suggerimento

Esaminare più in dettaglio il messaggio nella parte inferiore della finestra di dialogo che legge "La selezione corrisponde a 4 di 5 righe di entrambe le tabelle". Questo messaggio è fondamentale per comprendere il risultato ottenuto da questa operazione.

Nella tabella Paesi è presente il Paese Spagna con ID 4, ma non sono presenti record per CountryID 4 nella tabella Sales. Pertanto, solo tre di quattro righe della tabella destra hanno trovato una corrispondenza. Tutte le righe della tabella di destra che non hanno righe corrispondenti dalla tabella a sinistra vengono raggruppate e visualizzate in una nuova riga della tabella di output senza valori per i campi della tabella a sinistra.

Screenshot che non mostrano righe corrispondenti per Spagna nella tabella sinistra per il full outer join, quindi i valori Date, CountryID e Units per Spagna sono impostati su null.

Dalla colonna Paesi appena creati dopo l'operazione di unione espandere il campo Paese. Non selezionare la casella di controllo Usa nome colonna originale come prefisso .

Screenshot delle opzioni Espandi tabella con la colonna per Country selezionata.

Dopo aver eseguito questa operazione, si creerà una tabella simile all'immagine seguente.

Tabella finale full outer join.

Screenshot della tabella finale full outer join contenente Date, CountryID e Units derivate dalla tabella Sales e una colonna Country derivata dalla tabella Countries. È stata aggiunta una quinta riga per contenere dati dalla Spagna, ma tale riga contiene null nelle colonne Date, CountryID e Units poiché tali valori non esistevano per Spagna nella tabella Sales.