Combina i record della tabella di origine quando viene usato in una clausola FROM.
Sintassi
FROM tabella1 [ LEFT | RIGHT ] JOIN tabella2
ON tabella1.campo1operconfronto tabella2.campo2Le operazioni LEFT JOIN e RIGHT JOIN includono le 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. I campi devono essere dello stesso tipo di dati e includere lo stesso genere di dati, tuttavia non è necessario che utilizzino lo stesso nome. |
compopr |
Operatore di confronto relazionale: "=," "<," ">," "<=," ">=," o "<>." |
Osservazioni
Usare un'operazione LEFT JOIN per creare un left outer join. I left outer join includono tutti i record della prima (sinistra) di due tabelle, anche se non sono presenti valori corrispondenti per i record della seconda tabella (destra).
Usare un'operazione RIGHT JOIN per creare un right outer join. I right outer join includono tutti i record della seconda (destra) di due tabelle, anche se non sono presenti valori corrispondenti per i record della prima tabella (sinistra).
Ad esempio, è possibile usare LEFT JOIN con le tabelle Reparti (sinistra) e Dipendenti (destra) per selezionare tutti i reparti, inclusi quelli senza dipendenti assegnati. Per selezionare tutti i dipendenti, inclusi quelli non assegnati a un reparto, è possibile usare RIGHT JOIN.
L'esempio seguente mostra come collegare le tabelle Categorie e Prodotti nel campo IDCategoria. La query restituisce un elenco di tutte le categorie, incluse quelle che non contengono prodotti:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
In questo esempio il campo collegato è IDCategoria, ma non viene restituito nei risultati della query perché non è incluso nell'istruzione SELECT. Per includere il campo collegato, immettere il nome del campo nell'istruzione SELECT, in questo caso Categories.CategoryID.
Per creare una query che include solo i record in cui i dati dei campi collegati sono uguali, usare un'operazione INNER JOIN.
-
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. Vedere la discussione sull'annidamento nell'argomento INNER JOIN per sapere come annidare i join all'interno di altri join.
-
È possibile collegare più clausole ON. Vedere la discussione sul collegamento delle clausole nell'argomento INNER JOIN per visualizzare questa procedura.
Se si prova a collegare campi contenenti dati Memo o Oggetto OLE, si verifica un errore.