Anti join sinistro

Uno dei tipi di join disponibili nella finestra di dialogo Unione in Power Query è un anti join a sinistra, che inserisce solo righe della tabella a sinistra che non dispongono di righe corrispondenti dalla tabella a destra. Altre informazioni: Panoramica delle operazioni di merge

Esempio di anti join a sinistra.

Il diagramma mostra la 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. La tabella 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 contiene tre righe, con due righe contenenti i dati per CountryID 1 e una riga per CountryID 2. Poiché nessuno dei CountryID rimanenti corrisponde a uno qualsiasi dei paesi o delle aree geografiche nella tabella destra, le righe nella colonna Country nella tabella unita contengono tutti null.

Questo articolo usa dati di esempio per illustrare come eseguire un'operazione di unione con l'anti join a sinistra. 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 l'ID dei campi e Country. 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 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 come quella seguente, in cui vengono mantenute solo le righe della tabella sinistra che non corrispondono a nessuna della tabella destra.

Tabella finale anti join a sinistra.

Screenshot della tabella finale di anti join a sinistra con intestazioni di colonna Date, CountryID, Units e Country e tre righe di dati di cui i valori per la colonna Country sono tutti Null.

Per eseguire un anti join a sinistra:

  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 Tipo di join selezionare Left anti.In the Join kind section, select Left anti.
  6. Seleziona OK.

Screenshot della finestra di dialogo Merge che mostra i risultati della procedura precedente di anti join a sinistra.

Suggerimento

Esaminare più in dettaglio il messaggio nella parte inferiore della finestra di dialogo che legge "La selezione seleziona 3 di 4 righe dalla prima tabella". Questo messaggio è fondamentale per comprendere il risultato ottenuto da questa operazione.

Nella tabella Sales sono presenti due istanze di CountryID pari a 1 e un'istanza di CountryID pari a 2, ma nessuna di esse è presente nella tabella Paesi. Pertanto, la corrispondenza ha trovato tre di quattro righe nella tabella a sinistra (prima).

Nella tabella Paesi è presente il Paese Panama con ID 3, in modo che il record non venga inserito nella tabella Sales perché i numeri corrispondono. Inoltre, si dispone di un Paese Spagna con ID 4, ma non sono presenti record per CountryID 4 nella tabella Sales. Di conseguenza, nessuna delle due righe della tabella destra (seconda) viene inserita nella tabella Sales .

Nella colonna Paesi appena creati espandere il campo Paese. Non selezionare la casella di controllo Usa nome colonna originale come prefisso .

Screenshot della finestra di dialogo Espandi con solo la colonna Country selezionata.

Dopo aver eseguito questa operazione, è stata creata una tabella simile all'immagine seguente. Il campo Country appena espanso non ha valori perché l'anti join a sinistra non porta alcun valore dalla tabella destra, ma mantiene solo le righe dalla tabella a sinistra.

Tabella finale per l'anti join a sinistra.

Screenshot della tabella finale con le intestazioni di colonna Date, CountryID, Units e Country e tre righe di dati. I valori per la colonna Country sono tutti Null.