Rappresentazione di join in Progettazione query e Progettazione visualizzazioni

Se due o più tabelle sono unite tramite join, in Progettazione query e Progettazione visualizzazioni il join verrà rappresentato in forma grafica all'interno del riquadro Diagramma e mediante la sintassi SQL all'interno del riquadro SQL.

Riquadro Diagramma

Nel riquadro Diagramma verrà visualizzata una linea di join fra le colonne di dati coinvolte nel join. In Progettazione query e Progettazione visualizzazioni verrà visualizzata una linea di join per ogni condizione di join. La seguente figura mostra, ad esempio, una linea di join fra due tabelle unite in join:

Linea join PubInfo degli editori di query

Se le tabelle sono unite da più condizioni di join, verranno visualizzate più linee di join, come nel seguente esempio:

Schermata DatabaseProjectDatabaseConnections

Se le colonne di dati unite in join non vengono visualizzate, ad esempio perché il rettangolo che rappresenta la tabella o l'oggetto con struttura a tabella è ridotto a icona o il join utilizza un'espressione, in Progettazione query e Progettazione visualizzazioni viene inserita la linea di join nella barra del titolo del rettangolo che rappresenta la tabella o l'oggetto con struttura a tabella.

La forma dell'icona al centro della linea di join indica come le tabelle o gli oggetti con struttura a tabella sono uniti in join. Se la clausola di join utilizza un operatore diverso da uguale (=), tale operatore verrà visualizzato nell'icona della linea di join. Nella seguente tabella sono elencate le icone visualizzate nella linea di join.

Icona della linea di join

Descrizione

Schermata QueryJoinLineInnerJoinSymbol

Inner join (creato con il segno di uguale).

sc QueryJoinLineInnerJoinGreaterThanOperatorSymbol

Inner join basato sull'operatore "maggiore di".

Schermata QueryJoinLinesOuterJoinLeftSymbol

Outer join in cui verranno incluse tutte le righe della tabella rappresentata a sinistra, anche se non hanno alcuna corrispondenza nella tabella correlata.

Schermata QueryJoinLineOuterJoinRightSymbol

Outer join in cui verranno incluse tutte le righe della tabella rappresentata a destra, anche se non hanno alcuna corrispondenza nella tabella correlata.

Schermata QueryJoinLineFullOuterSymbol

Full outer join in cui verranno incluse tutte le righe di entrambe le tabelle, anche se non hanno alcuna corrispondenza nella tabella correlata.

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

I simboli alle estremità della linea di join indicano il tipo di join. Nella seguente tabella sono elencati i tipi di join e le icone visualizzate alle estremità della linea di join.

Icona alle estremità di una linea di join

Tipo di join

Schermata QueryJoinLine1-to-1Symbol

Join uno-a-uno.

Schermata QueryJoinLine1-to-ManySymbol

Join uno-a-molti.

Schermata QueryJoinLineEndSymbol

In Progettazione query e Progettazione visualizzazioni non è possibile determinare il tipo di join. Questa situazione si verifica perlopiù con join creati manualmente.

Riquadro SQL

Un join può essere rappresentato in vari modi all'interno di un'istruzione SQL. La sintassi esatta dipende dal database utilizzato e dalla modalità di definizione del join.

Le opzioni della sintassi per il join di tabelle comprendono:

  • Qualificatore JOIN per la clausola FROM.   Le parole chiave INNER e OUTER specificano il tipo di join. La sintassi è quella standard per ANSI 92 SQL.

    Se, ad esempio, si esegue il join delle tabelle publishers e pub_info in base alla colonna pub_id di ciascuna tabella, l'istruzione SQL risultante potrebbe essere simile alla seguente:

    SELECT *
    FROM publishers INNER JOIN pub_info ON
       publishers.pub_id = pub_info.pub_id
    

    Se si crea un outer join, verranno utilizzate le parole LEFT OUTER o RIGHT OUTER al posto di INNER.

  • La clausola WHERE che confronta le colonne di entrambe le tabelle.   La clausola WHERE viene utilizzata quando il database non supporta la sintassi JOIN oppure in caso di immissione manuale. Se il join viene creato nella clausola WHERE, nella clausola FROM saranno indicati i nomi di entrambe le tabelle.

    Ad esempio, la seguente istruzione esegue il join delle tabelle publishers e pub_info.

    SELECT *
    FROM publishers, pub_info
    WHERE  publishers.pub_id = pub_info.pub_id
    

Vedere anche

Riferimenti

Finestra di dialogo Join

Altre risorse

Esecuzione di query mediante l'utilizzo di join