Creazione di join esterni (Visual Database Tools)Create Outer Joins (Visual Database Tools)

Per impostazione predefinita, in Progettazione query e Progettazione viste viene creato un inner join tra le tabelle.By default, the Query and View Designer creates an inner join between tables. Le righe prive di corrispondenza nell'altra tabella vengono eliminate.Inner joins eliminate the rows that do not match with a row from the other table. Gli outer join restituiscono invece tutte le righe di almeno una delle tabelle o viste specificate nella clausola FROM, a condizione che tali righe soddisfino una delle condizioni di ricerca della clausola WHERE o HAVING.Outer joins, however, return all rows from at least one of the tables or views mentioned in the FROM clause, as long as those rows meet any WHERE or HAVING search conditions. Se si desidera includere nel set di risultati le righe di dati che non hanno una corrispondenza nella tabella in join, sarà possibile creare un outer join.If you want to include data rows in the result set that do not have a match in the joined table, you can create an outer join.

Durante la creazione di un outer join, l'ordine di inserimento delle tabelle nell'istruzione SQL (riflesso nel riquadro SQL) è significativo.When you create an outer join, the order in which tables appear in the SQL statement (as reflected in the SQL pane) is significant. La prima tabella aggiunta diventa la tabella di sinistra ("left") e la seconda diventa la tabella di destra ("right").The first table you add becomes the "left" table and the second table becomes the "right" table. 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 vengono visualizzate nell'istruzione SQL nel riquadro SQL.(The actual order in which the tables appear in the Diagram pane is not significant.) When you specify a left or right outer join, you are referring to the order in which the tables were added to the query and to the order in which they appear in the SQL statement in the SQL pane.

Per creare un outer joinTo create an outer join

  1. Creare un join, automaticamente o manualmente.Create the join, either automatically or manually. Per informazioni dettagliate, vedere Unione di tabelle in modo automatico (Visual Database Tools) o Unione di tabelle in modo manuale (Visual Database Tools).For details, see Join Tables Automatically (Visual Database Tools) or Join Tables Manually (Visual Database Tools).

  2. Selezionare la linea di join nel riquadro Diagramma e scegliere Seleziona tutte le righe da dal menu Progettazione query. Il comando da scegliere è quello relativo alla tabella contenente le righe supplementari da inserire.Select the join line in the Diagram pane, and then from the Query Designer menu, choose Select All Rows from , selecting the command that includes the table whose extra rows you want to include.

    • Scegliere la prima tabella per creare un left outer join.Choose the first table to create a left outer join.

    • Scegliere la seconda tabella per creare un right outer join.Choose the second table to create a right outer join.

    • Scegliere entrambe le tabelle per creare un full outer join.Choose both tables to create a full outer join.

Quando si specifica un outer join, la linea di join verrà modificata automaticamente a indicare l'outer join.When you specify an outer join, the Query and View Designer modifies the join line to indicate an 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:In addition, the Query and View Designer modifies the SQL statement in the SQL pane to reflect the change in join type, as shown in the following statement:

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.Because an outer join includes unmatched rows, you can use it to find rows that violate foreign key constraints. Per eseguire 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.To do so, you create an outer join and then add a search condition to find rows in which the primary key column of the rightmost table is 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 :For example, the following outer join finds rows in the employee table that do not have corresponding rows in the jobs table:

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 ancheSee Also

Esecuzione di query con join (Visual Database Tools)Query with Joins (Visual Database Tools)
Finestra di dialogo Join (Visual Database Tools)Join Dialog Box (Visual Database Tools)