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.
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.