Anti join destro
Uno dei tipi di join disponibili nella finestra di dialogo Unione in Power Query è un anti join a destra, che inserisce solo le righe della tabella destra che non hanno righe corrispondenti dalla tabella a sinistra. Altre informazioni: Panoramica delle operazioni di merge
La figura mostra una tabella a sinistra con le 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 a destra contiene le colonne ID e Country. La colonna ID evidenziata contiene valori pari a 3 nella riga 1 (che denota Panama) e 4 nella riga 2 (denoting Spain). Una tabella sotto le prime due tabelle contiene le colonne Date, CountryID, Units e Country. La tabella include una riga, con Date, CountryID e Units impostata su null e l'opzione Country impostata su Spagna.
Questo articolo usa dati di esempio per illustrare come eseguire un'operazione di unione con l'anti join corretto. 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: tabella di riferimento con l'ID dei campi e Country. Il campo ID rappresenta l'identificatore univoco per ogni record.
In questo esempio si uniranno entrambe le tabelle, con la tabella Sales come tabella a sinistra e la tabella Countries come quella destra. Il join verrà eseguito tra le colonne seguenti.
Campo della tabella Sales | Campo della tabella Paesi |
---|---|
CountryID | id |
L'obiettivo è creare una tabella come quella seguente, in cui vengono mantenute solo le righe della tabella destra che non corrispondono a nessuna della tabella a sinistra. Come caso d'uso comune, è possibile trovare tutte le righe disponibili nella tabella destra, ma non trovate nella tabella a sinistra.
Right anti join final table with the Date, CountryID, Units, and Country header columns, containing one row with null in all columns except Country, which contains Spain.
Per eseguire un anti join corretto
- 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 Tipo di join selezionare Anti destra.
- Seleziona OK.
Suggerimento
Esaminare più in dettaglio il messaggio nella parte inferiore della finestra di dialogo che legge "La selezione esclude 1 di 2 righe dalla seconda tabella". 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. Ecco perché solo una delle due righe della tabella destra (seconda) ha trovato una corrispondenza. A causa del funzionamento dell'anti join destro, nell'output di questa operazione non verranno mai visualizzate righe della tabella di sinistra (prima).
Nella colonna Paesi appena creati 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. Il campo Paese appena espanso non ha valori. Ciò è dovuto al fatto che l'anti join destro non porta alcun valore dalla tabella di sinistra, ma mantiene solo le righe dalla tabella destra.
Tabella finale con le colonne di intestazione Date, CountryID, Units e Country, contenente una riga con null in tutte le colonne tranne Country, che contiene Spagna.