Linguaggio SQL per Access: clausola FROM

Questo articolo fa parte di un gruppo di articoli sul linguaggio SQL per Access. Questo articolo descrive come scrivere una clausola FROM e fornisce alcuni esempi per illustrare le diverse tecniche che possono essere usate in una clausola FROM.

In un'istruzione SELECT le origini dati vengono specificate nella clausola FROM. La clausola FROM può contenere anche un'operazione JOIN. Un'operazione JOIN viene usata per associare e combinare i dati di due origini dati, ad esempio due tabelle o una tabella e una query.

Per una panoramica del linguaggio SQL per Access, vedere l'articolo Linguaggio SQL per Access: nozioni fondamentali, terminologia e sintassi.

In questo articolo

Specificare le origini dati

Usare nomi sostitutivi per le origini dati

Creare un join tra i dati correlati

Specificare le origini dati

In un'istruzione SELECT la clausola FROM specifica le tabelle o le query che contengono i dati che verranno usati dalla clausola SELECT.

Si supponga di voler sapere il numero di telefono di un cliente specifico. Se la tabella che contiene i campi che archiviano questi dati è denominata tblCustomer, la clausola FROM sarà simile alla seguente:

FROM tblCustomer

È possibile usare le parentesi quadre per racchiudere il nome. Se il nome non contiene spazi o caratteri speciali, ad esempio i segni di punteggiatura, l'uso delle parentesi quadre è facoltativo. Se il nome contiene spazi o caratteri speciali, è necessario usare le parentesi quadre.

Suggerimento : Un nome con gli spazi è più facile da leggere e consente di risparmiare tempo quando si progettano moduli e report, tuttavia può richiedere una maggiore digitazione quando si scrivono istruzioni SQL. Tenere presente questa considerazione quando si assegna un nome agli oggetti nel database di Access.

Usare nomi sostitutivi per le origini dati

Per fare riferimento a una tabella in un'istruzione SELECT è possibile usare nome diverso inserendo un alias di tabella nella clausola FROM. Un alias di tabella è un nome assegnato a un'origine dati in una query quando si usa un'espressione come origine dati o quando si vuole semplificare la digitazione o la lettura dell'istruzione SQL. Questa caratteristica può risultare particolarmente utile se il nome dell'origine dati è lungo o difficile da digitare, soprattutto se sono presenti più campi con lo stesso nome provenienti da tabelle diverse.

Ad esempio, se si vogliono selezionare i dati di due campi, entrambi denominati ID, uno dei quali appartiene alla tabella tblCustomer e l'altro alla tabella tblOrder, si userà una clausola SELECT simile alla seguente:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Usando gli alias di tabella nella clausola FROM, è possibile semplificare la digitazione della query. La clausola FROM, con gli alias di tabella, sarà simile alla seguente:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Gli alias di tabella possono essere poi usati nella clausola SELECT, come segue:

SELECT [C].[ID], [O].[ID]

Nota : Quando si usa un alias di tabella, è possibile fare riferimento alla tabella nell'istruzione SQL con l'alias o con il nome completo della tabella.

Creare un join tra i dati correlati

Se si devono combinare coppie di record da due origini dati in record singoli nei risultati di una query, è possibile eseguire un join. Un join è un'operazione di SQL che specifica la modalità di relazione di due origini dati e se è necessario includere i dati di un'origine quando non esistono dati corrispondenti provenienti dall'altra origine.

Per combinare le informazioni da due origini dati, si esegue un'operazione di join nel campo che hanno in comune. Quando i valori archiviati in questo campo corrispondono, i dati dei record vengono combinati nei risultati.

Oltre alla combinazione di dati, un join viene usato anche per specificare se includere i record di una tabella quando non esiste un record corrispondente nella tabella correlata.

Ad esempio, si supponga di voler usare i dati di due tabelle in una query: tblCustomer e tblOrder. Entrambe le tabelle hanno un campo, CustomerID, che identifica un cliente. Ogni record nella tabella tblCustomer può avere uno o più record corrispondenti nella tabella tblOrder e i valori corrispondenti possono essere determinati dai valori nel campo CustomerID.

Per creare un join delle tabelle in modo che la query combini i record delle tabelle escludendo quelli che non hanno record corrispondenti nell'altra tabella, si può usare una clausola FROM simile alla seguente (l'interruzione di riga è stata aggiunta per migliorare la leggibilità):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

In Access i join sono presenti nella clausola FROM dell'istruzione SELECT. Esistono due tipi di join: inner join e outer join. Le sezioni seguenti descrivono questi due tipi di join.

Inner join

Gli inner join rappresentano il tipo più comune di join. Quando si esegue una query con un inner join, gli unici record inclusi nei risultati della query sono quelli in cui è presente un valore comune in entrambe le tabelle del join.

La sintassi di un inner join è la seguente (l'interruzione di riga è stata aggiunta per migliorare la leggibilità):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

La tabella seguente descrive le diverse parti di un'operazione INNER JOIN.

Parte

Descrizione

tabella1, tabella2

Nomi delle tabelle di cui vengono combinati i record.

campo1, campo2

Nomi dei campi che vengono collegati tramite join. Se non includono dati numerici, i campi devono essere dello stesso tipo di dati e contenere lo stesso genere di dati, tuttavia non è necessario che abbiano lo stesso nome.

compopr

Operatore di confronto relazionale: "=," "<," ">," "<=," ">=," o "<>."

Outer join

Gli outer join sono simili agli inner join perché specificano come combinare le informazioni da due origini in una query. La differenza con gli inner join, invece, riguarda la possibilità di specificare se includere i dati quando non sono presenti valori comuni. Gli outer join sono direzionali: è possibile specificare se includere tutti i record della prima origine dati specificata nel join (denominata left join) o della seconda origine dati del join (denominata right join).

La sintassi di un outer join è la seguente:

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1compopr table2.field2

La tabella seguente descrive le diverse parti delle operazioni LEFT JOIN e RIGHT JOIN.

Parte

Descrizione

tabella1, tabella2

Nomi delle tabelle di cui vengono combinati i record.

campo1, campo2

Nomi dei campi collegati con il join. I campi devono essere dello stesso tipo di dati e includere lo stesso genere di dati, tuttavia non è necessario che abbiano lo stesso nome.

compopr

Operatore di confronto relazionale: "=," "<," ">," "<=," ">=," o "<>."

Per altre informazioni sui join, vedere l'articolo Collegare tabelle e query.

Inizio pagina

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×