Condividi tramite


Anti join destro

Uno dei tipi di join disponibili nella finestra di dialogo Merge in Power Query è un anti join destro, che include solo le righe della tabella di destra che non hanno righe corrispondenti nella tabella di sinistra. Ulteriori informazioni: panoramica delle operazioni di fusione

esempio di anti join destro.

Diagramma che mostra la tabella 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. La tabella destra contiene le colonne ID e Country. La colonna ID evidenziata contiene valori di 3 nella riga 1 (che denota Panama) e 4 nella riga 2 (che denota Spagna). 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:

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

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

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

    Screenshot della tabella dei paesi con ID impostato su 3 nella riga 1 e 4 nella riga 2 e Paese impostato su Panama nella riga 1 e Spagna nella riga 2.

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

Campo della tabella Vendite Campo della tabella Paesi
CountryID ID

L'obiettivo è creare la tabella 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 presenti nella tabella di destra ma assenti in quella di sinistra.

Tabella creata da Right anti join.

Tabella finale di destra con join anti, utilizzando le colonne di intestazione Data, IDPaese, Unità e Paese, contenente una riga con valori null in tutte le colonne, tranne Paese, che contiene Spagna.

Per eseguire un anti join corretto:

  1. Seleziona la query Sales e quindi seleziona Unisci query.
  2. Nella finestra di dialogo Unione, sotto Tabella campo destro per unione, selezionare Paesi.
  3. Nella tabella Sales, selezionare la colonna CountryID.
  4. Nella tabella Paesi, selezionare la colonna ID.
  5. Nella sezione Tipo di join selezionare Anti destro.
  6. Selezionare OK.

finestra di dialogo Merge che mostra i risultati della procedura di right anti join precedente.

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 Country Spain con ID pari a 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 a destra, nell'output di questa operazione non vengono mai visualizzate righe dalla tabella di sinistra (prima).

Dalla colonna Paesi appena creata, espandi il campo Paese. Non selezionare la casella di controllo Usa nome colonna originale come prefisso.

Screenshot della colonna Paesi espansi con soltanto il campo Paese selezionato.

Dopo aver eseguito questa operazione, creare una tabella simile all'immagine seguente. Il campo Country appena espanso non contiene valori. Ciò è dovuto al fatto che l'anti join destro non porta alcun valore dalla tabella di sinistra, ma conserva solo le righe della tabella di destra.

tabella finale dell'anti join corretto.

Screenshot della tabella finale con le colonne di intestazione Date, CountryID, Units e Country, contenente una riga con null in tutte le colonne, ad eccezione di Country, che contiene Spagna.