Condividi tramite


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

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

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

Vedere anche

Query con operazioni di join (Visual Database Tools)