Sommario: in questo tutorial, imparerai come usare la RIGHT OUTER JOIN
in Oracle per unire due o più tabelle.
Panoramica della RIGHT OUTER JOIN in Oracle
Supponiamo di avere due tabelle T1
e T2
, la seguente dichiarazione mostra come unire queste due tabelle usando la clausola RIGHT OUTER JOIN
in Oracle:
In questa dichiarazione, T1
e T2
sono rispettivamente la tabella di sinistra e di destra.
La parola chiave OUTER
è opzionale, quindi RIGHT OUTER JOIN
e RIGHT JOIN
sono uguali.
Ecco come funziona la RIGHT OUTER JOIN
.
Ogni riga della tabella T1
viene confrontata con le righe della tabella T2
:
- Se una coppia di righe soddisfa il predicato di unione, i valori delle colonne di entrambe le righe vengono combinati per creare una riga di risultato che viene inclusa nell’insieme dei risultati.
- Nel caso in cui una riga della tabella
T2
non corrisponda a nessuna riga della tabellaT1
, i valori delle colonne della riga della tabellaT2
vengono combinati con un valore NULL per ogni colonna della riga della tabellaT1
per creare la riga del risultato che viene poi inclusa nell’insieme dei risultati.
In altre parole, una right outer join restituisce tutte le righe della tabella di destra e anche le righe corrispondenti della tabella di sinistra.
Esempi di RIGHT OUTER JOIN di Oracle
Per la dimostrazione useremo le tabelle orders
e employees
nel database di esempio:
In questo schema, un venditore è responsabile di uno o più ordini di vendita. Tuttavia, alcuni ordini di vendita potrebbero non essere a carico di nessun venditore.
L’esempio seguente recupera tutti i venditori e i loro eventuali ordini di vendita:
Il risultato include tutti gli impiegati la cui qualifica è Sales Representative
e i loro ordini.
Se un venditore non è responsabile di nessun ordine di vendita come Alice Wells
, Charlotte Webb
, le colonne order_id
e status
sono riempite con valori NULL.
Oracle RIGHT OUTER JOIN con clausola USING
Similmente ad altre unioni come INNER JOIN
, LEFT JOIN
, potete usare la clausola USING
per specificare quale colonna testare per l’uguaglianza quando unite le tabelle.
Il seguente illustra la sintassi della RIGHT OUTER JOIN
con la clausola USING
:
In questa query, le colonne elencate nella clausola USING
devono essere presenti in entrambe le tabelle T1
e T2
.
La seguente dichiarazione è equivalente a quella sopra:
La seguente dichiarazione dimostra come usare il RIGHT OUTER JOIN
con la clausola USING
:
In questo esempio, tutti i clienti sono inclusi nel set di risultati. Se un cliente non ha un ordine di vendita, le colonne order_id
e status
sono riempite con valori NULL.
Oracle RIGHT JOIN: condizione nella clausola ON vs. WHERE
La seguente dichiarazione ottiene i dati dei dipendenti e degli ordini del venditore id 57.
L’istruzione seguente mette la condizione nella clausola WHERE
invece che nella clausola ON
:
La query ha restituito tutti i dipendenti ma solo il dipendente id 57 ha i dati dell’ordine relativi.
Nota che per quanto riguarda la INNER JOIN
, la condizione è posta nella clausola ON
ha lo stesso effetto di quella posta nella clausola WHERE
.
In questo tutorial, hai imparato come usare la RIGHT OUTER JOIN
in Oracle per interrogare i dati da più tabelle.
- Questo tutorial è stato utile?
- SìNo