Riunisce record da due tabelle che includono valori corrispondenti in un campo comune.
Sintassi
FROM tabella1 INNER JOIN tabella2 ON tabella1. campo1compopr tabella2. campo2
L'operazione INNER JOIN è composta dalle parti seguenti:
| Parte | Descrizione |
|---|---|
| tabella1, tabella2 | Nomi delle tabelle di cui vengono combinati i record. |
| campo1, campo2 | I nomi dei campi che vengono collegati tramite join. Se non sono numerici, i campi devono essere dello stesso tipo di dati e contenere lo stesso tipo di dati, ma non devono necessariamente avere lo stesso nome. |
| compopr | Qualsiasi operatore di confronto relazionale: "=", "<," ">," "<="," ">=" o "<>." |
Osservazioni
È possibile usare un'operazione INNER JOIN in qualsiasi clausola FROM. Questo è il tipo di join più comune. Gli inner join combinano i record di due tabelle che contengono valori corrispondenti in un campo comune a entrambe le tabelle.
È possibile usare INNER JOIN con le tabelle Dipartimenti e Impiegati per selezionare tutti gli impiegati di un dipartimento. Al contrario, per selezionare tutti i reparti (anche se ad alcuni non sono assegnati dipendenti) o tutti i dipendenti (anche se alcuni non sono assegnati a un reparto), è possibile usare un'operazione LEFT JOIN o RIGHT JOIN per creare un outer join.
Se si prova a creare un join tra campi contenenti dati Memo o Oggetto OLE, si verifica un errore.
È possibile creare un join tra due campi numerici di tipo simile. Ad esempio, è possibile creare join tra campi Numerazione automatica e Intero lungo, perché sono tipi simili. Non è però on è possibile creare join tra tipi di campi Precisione singola e Precisione doppia.
L'esempio seguente mostra come creare un join tra tabelle Categorie e Prodotti nel campo IDCategoria:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products
ON Categories.CategoryID = Products.CategoryID;
Nell'esempio precedente il campo unito in join è IDCategoria, ma non viene restituito nell'output della query perché non è incluso nell'istruzione SELECT. Per includere il campo collegato, includere il nome del campo nell'istruzione SELECT, in questo caso . Categories.CategoryID
Usando la sintassi seguente è anche possibile collegare diverse clausole ON in un'istruzione JOIN:
CAMPI SELECT
FROM tabella1 INNER JOIN tabella2
ON tabella1. campo1compoprtable2. campo1 E
ON tabella1. campo2compoprtable2. campo2) O
ON tabella1. campo3confrontotabella2. campo3)];
È anche possibile annidare istruzioni JOIN usando la sintassi seguente:
CAMPI SELECT
FROM tabella1 INNER JOIN
(tabella2 INNER JOIN [( ]tabella3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON tabella3. field3compoprtablex. campox)]
ON tabella2. campo2compoprtable3. campo3)
ON tabella1. campo1compoprtable2. campo2;
Un'operazione LEFT JOIN o RIGHT JOIN può essere annidata all'interno di INNER JOIN, ma un'operazione INNER JOIN non può essere annidata all'interno di LEFT JOIN o RIGHT JOIN.