Creare "outer join" (Strumenti di database visuali)
si applica a:SQL Server
Per impostazione predefinita, il Query and View Designer crea un inner join tra le tabelle. I inner join eliminano le righe che non corrispondono a una riga dall'altra tabella. I outer join, tuttavia, restituiscono tutte le righe da almeno una delle tabelle o viste menzionate nella clausola FROM, purché tali righe soddisfino eventuali condizioni di ricerca WHERE o HAVING. Se si desidera includere righe di dati nell'insieme di risultati che non hanno una corrispondenza nella tabella unita, è possibile creare un outer join.
Quando si crea un outer join, l'ordine in cui le tabelle vengono visualizzate nell'istruzione SQL (come illustrato nel riquadro SQL) è significativo. La prima tabella aggiunta diventa la tabella "sinistra" e la seconda diventa la tabella "destra". L'ordine effettivo in cui le tabelle vengono visualizzate nel riquadro diagramma non è significativo. Quando si specifica un outer join sinistro o destro, si fa riferimento all'ordine in cui le tabelle sono state aggiunte alla query e all'ordine in cui vengono visualizzate nell'istruzione SQL nel riquadro SQL .
Per creare una giunzione esterna
Creare il join, automaticamente o manualmente. Per informazioni dettagliate, vedere unire automaticamente le tabelle (Visual Database Tools) o unire manualmente le tabelle (Visual Database Tools).
Selezionare la riga di join nel riquadro del Diagramma e quindi, dal menu Progettazione Query, scegliere Seleziona tutte le righe da <nome tabella>, selezionando il comando che include la tabella di cui si desidera includere le righe aggiuntive.
Scegliere la prima tabella per creare un left outer join.
Scegliere la seconda tabella per creare un join esterno destro.
Scegliere entrambe le tabelle per creare un join esterno completo.
Quando si specifica un outer join, lo strumento di progettazione query e viste modifica la linea di join per indicare un outer join.
Inoltre, il Progettista di query e viste modifica l'istruzione SQL nella finestra di SQL per riflettere la modifica del tipo di join, come illustrato nell'istruzione seguente.
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
Poiché un outer join include righe non corrispondenti, è possibile usarlo per trovare righe che violano vincoli di chiave esterna. A tale scopo, creare un outer join e quindi aggiungere una condizione di ricerca per trovare le righe in cui la colonna chiave primaria della tabella più a destra è Null. Ad esempio, il outer join seguente trova righe nella tabella employee
che non hanno righe corrispondenti 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)