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 tabella T1, i valori delle colonne della riga della tabella T2 vengono combinati con un valore NULL per ogni colonna della riga della tabella T1 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

admin

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

lg