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
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 .
Paesi: questa tabella è una tabella di riferimento con i campi ID e Paese. Il campo ID rappresenta l'identificatore univoco per ogni record.
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.
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:
- Selezionare la query Sales e quindi merge di query.
- Nella finestra di dialogo Unione selezionare Paesi in Tabella destra per l'unione.
- Nella tabella Sales selezionare la colonna CountryID.
- Nella tabella Paesi selezionare la colonna ID.
- Nella sezione Join kind (Tipo di join) selezionare Full outer (Completo esterno).
- seleziona OK.
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.
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 .
Dopo aver eseguito questa operazione, si creerà una tabella simile all'immagine seguente.
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.