Combina los registros de dos tablas si hay valores coincidentes en un campo común.
Sintaxis
FROM tabla1 INNER JOIN tabla2 ON tabla1.campo1operador_de_comparación tabla2.campo2
La operación INNER JOIN consta de las siguientes partes:
Parte |
Descripción |
tabla1, tabla2 |
Nombres de las tablas cuyos registros se combinan. |
campo1, campo2 |
Nombres de los campos que se combinan. Si no son numéricos, los campos deben ser del mismo tipo de datos y contener la misma clase de datos, pero pueden tener nombres distintos. |
opcomp |
Cualquier operador de comparación relacional: "=", "<", ">", "<=", ">=" o "<>". |
Observaciones
Puede usar una operación INNER JOIN en cualquier cláusula FROM. Este es el tipo de combinación más común . Las combinaciones internas combinan los registros de dos tablas si hay valores coincidentes en un campo común de las dos tablas.
Puede usar INNER JOIN con las tablas Departamentos y Empleados para seleccionar todos los empleados de cada departamento. En cambio, para seleccionar todos los departamentos (aunque algunos no tengan ningún empleado asignado) o todos los empleados (aunque algunos no estén asignados a un departamento), puede usar una operación LEFT JOIN o RIGHT JOIN para crear una combinación externa.
Si intenta combinar campos que contienen datos Memo u Objeto OLE, se produce un error.
Puede combinar dos campos numéricos de tipos similares. Por ejemplo, puede combinar en campos Autonumeración y Largo porque son tipos similares. Pero no puede combinar los tipos de campo Sencillo y Doble.
En el siguiente ejemplo se muestra cómo se pueden combinar las tablas Categorías y Productos en el campo IdCategoría:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
En el ejemplo anterior, IdCategoría es el campo combinado, pero no se incluye en el resultado de la consulta porque no está incluido en la instrucción SELECT. Para incluir el campo combinado, incluya el nombre del campo en la instrucción SELECT, en este caso, Categories.CategoryID.
También puede vincular varias cláusulas ON en una instrucción JOIN mediante la siguiente sintaxis:
SELECT campos
FROM tabla1 INNER JOIN tabla2 ON tabla1.campo1operador_de_comparacióntabla2.campo1 AND ON tabla1.campo2operador_de_comparacióntabla2.campo2) OR ON tabla1.campo3operador_de_comparacióntabla2.campo3)];También puede anidar instrucciones JOIN mediante la siguiente sintaxis:
SELECT campos
FROM tabla1 INNER JOIN (tabla2 INNER JOIN [( ]tabla3 [INNER JOIN [( ]tablax [INNER JOIN ...)] ON tabla3.campo3operador_de_comparacióntablax.campox)] ON tabla2.campo2operador_de_comparacióntabla3.campo3) ON tabla1.campo1operador_de_comparacióntabla2.campo2;LEFT JOIN o RIGHT JOIN se pueden anidar dentro de INNER JOIN, pero INNER JOIN no se puede anidar dentro de LEFT JOIN o RIGHT JOIN.