Riunisce record da due tabelle che includono valori corrispondenti in un campo comune.
Sintassi
DALLA TABELLA1 INNER JOIN TABELLA2 SULLA 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 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 alcuni non hanno dipendenti assegnati) 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 unito, includere il nome del campo nell'istruzione SELECT, Categories.CategoryIDin questo caso .
Usando la sintassi seguente è anche possibile collegare diverse clausole ON in un'istruzione JOIN:
SELEZIONA campi
DALLA TABELLA1 INNER JOIN TABELLA2
SUL tavolo1. Field1ComPoprTable2. Campo1 E
SUL tavolo1. campo2compoprtable2. campo 2) OPPURE
SUL tavolo1. Field3ComPoprTable2. campo 3)];
È anche possibile annidare istruzioni JOIN usando la sintassi seguente:
SELEZIONA campi
DALLA TABELLA1 INNER JOIN
(tabella2 INNER JOIN [( ]tabella3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
SULLA TABELLA 3. Field3ComPoprTableX. CampoX)]
SULLA TABELLA 2. campo2compoprtable3. Campo3)
SUL tavolo1. Field1ComPoprTable2. campo 2;
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.