Procedura: creare outer join

Per impostazione predefinita, in Progettazione query e Progettazione viste viene creato un inner join tra le tabelle. Se si desidera includere nel gruppo di risultati le righe di dati che non hanno una corrispondenza nella tabella in join, sarà possibile creare un outer join.

Durante la creazione di un outer join, l'ordine di inserimento delle tabelle nell'istruzione SQL (riflesso nel riquadro SQL) è significativo. La prima tabella aggiunta diventa la tabella di sinistra ("left") e la seconda diventa la tabella di destra ("right"). Non è invece significativo l'ordine effettivo in cui le tabelle sono visualizzate nel riquadro Diagramma. Quando si specifica un left outer join o un right outer join, si fa riferimento alla sequenza di inserimento delle tabelle nella query o all'ordine in cui compaiono nell'istruzione SQL nel riquadro SQL.

Nota

È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Gestione delle impostazioni.

Per creare un outer join

  1. Creare un join, automaticamente o manualmente. Per informazioni dettagliate, vedere Procedura: creazione automatica di join di tabelle o Procedura: creare join di tabelle in modo manuale.

  2. Selezionare la linea di join nel riquadro Diagramma, quindi scegliere Seleziona tutte le righe da <nometabella> dal menu Progettazione query. Il comando da scegliere è quello relativo alla tabella contenente le righe supplementari da inserire.

    • Scegliere la prima tabella per creare un left outer join.

    • Scegliere la seconda tabella per creare un right outer join.

    • Scegliere entrambe le tabelle per creare un full outer join.

      Nota

      Alcuni database, ad esempio i database Oracle, non supportano i full outer join.

Quando si specifica un outer join, la linea di join verrà modificata automaticamente a indicare l'outer join.

Inoltre, l'istruzione SQL nel riquadro SQL verrà modificata in modo da riflettere la modifica del tipo di join, come mostrato nella seguente istruzione:

SELECT employee.job_id, employee.emp_id,
   employee.fname, employee.minit, jobs.job_desc
FROM employee LEFT OUTER JOIN jobs ON 
    employee.job_id = jobs.job_id

Dato che l'outer join include le righe prive di corrispondenza, è possibile utilizzarlo per trovare le righe che violano vincoli di chiave esterna. Per effettuare questa operazione, è possibile creare un outer join, quindi aggiungere una condizione di ricerca che consenta di trovare le righe in cui la colonna chiave primaria della tabella a destra sia di tipo null. L'outer join illustrato di seguito consente ad esempio di trovare nella tabella employee le righe a cui non corrisponde alcuna riga nella tabella jobs:

SELECT employee.emp_id, employee.job_id
FROM employee LEFT OUTER JOIN jobs 
   ON employee.job_id = jobs.job_id
WHERE (jobs.job_id IS NULL)

Vedere anche

Riferimenti

Finestra di dialogo Join

Altre risorse

Esecuzione di query mediante l'utilizzo di join