L’SQL RIGHT JOIN include tutte le righe della tabella Right e quelle che corrispondono dalla sinistra. Per quelle che non corrispondono da destra, viene restituito NULL nelle colonne corrispondenti.

Questa è la differenza chiave tra una RIGHT JOIN SQL e una INNER JOIN. Dove una inner join restituisce solo le righe che corrispondono alla condizione di join, in una Right outer join, è garantito che tutte le righe delle tabelle di destra siano incluse nel risultato.

Guarda questa illustrazione:

Guarda i risultati per Fred e nota che non c’è nessun prodotto corrispondente, è NULL. Inoltre, il non è incluso nel risultato.

Un altro nome per la giunzione a destra è Right outer join.

La forma generale di RIGHT JOIN è:

SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn 

Note:

  • In questo esempio table2 è la tabella destra e table1 la sinistra.
  • Se non c’è corrispondenza tra i valori di commonColumn, table1.column1 ritorna NULL

SQL RIGHT JOIN Esempio

Non tutte le persone nel database di AdventureWorks sono dipendenti. Elenchiamo ogni persona e alcuni dei suoi dati sull’impiego, se esistono. Useremo una RIGHT JOIN per farlo.

Tenete a mente che è una RIGHT JOIN, poiché la tabella person, che ha tutte le righe che vogliamo restituire, è sul lato destro dell’operatore JOIN.

-Elenco tutte le persone e tutti i dati sull’occupazione, se esistono. -Utilizzare Outer Join per farlo… SELECT P.FirstName , P.LastName , E.HireDate , E.JobTitle FROM HumanResources.Employee AS E RIGHT JOIN Person.Person AS P ON P.BusinessEntityID = E.BusinessEntityID;
--List all People and any employment data, if it exists. --Use Outer Join to do so... SELECT P.FirstName , P.LastName , E.HireDate , E.JobTitle FROM HumanResources.Employee AS E RIGHT JOIN Person.Person AS P ON P.BusinessEntityID = E.BusinessEntityID; 

Guarda i risultati e nota che ci sono NULL per alcune persone. Questo perché non ci sono voci corrispondenti nella tabella Employee. La RIGHT JOIN funziona come pubblicizzato, restituisce tutte le corrispondenze e un NULL dove non ce ne sono.

Punti importanti:

Quando lavori con le RIGHT JOINS tieni a mente che la tua corrispondenza da una tabella all’altra può corrispondere a più righe. Cioè, il tuo risultato può avere più righe nel risultato che hai in entrambe le tabelle.

Quando le colonne non corrispondono, la query la riga destra, e NULL per le colonne della tabella sinistra.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.