Operaciones LEFT JOIN, RIGHT JOIN

Combina registros de la tabla origen cuando se utiliza en cualquier cláusula FROM.

Sintaxis

FROM tabla1 [ LEFT | RIGHT ] JOIN tabla2
ON tabla1.campo1 operadordecomparación tabla2.campo2

Las operaciones LEFT JOIN y RIGHT JOIN constan 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. Estos campos deben ser del mismo tipo de datos (tipo de datos: característica de un campo que determina el tipo de datos que puede albergar. Los tipos de datos son: Booleano, Entero, Largo, Moneda, Simple, Doble, Fecha, Cadena y Variant (predeterminado).) y contener la misma clase de datos, pero no tienen que tener el mismo nombre.
operadordecomparación Cualquier operador de comparación relacional: "=", "<", ">", "<=", ">=" o "<>".
Comentarios

Utilice una operación LEFT JOIN para crear una combinación externa por la izquierda (combinación externa izquierda: combinación externa en la que todos los registros del lado izquierdo de la operación LEFT JOIN de la instrucción SQL de la consulta se agregan a los resultados de la consulta, aunque no haya valores coincidentes en el campo combinado de la tabla de la derecha.). Las combinaciones externas por la izquierda incluyen todos los registros de la primera de las dos tablas (izquierda), incluso si no hay valores coincidentes para los registros en la segunda tabla (derecha).

Utilice una operación RIGHT JOIN para crear una combinación externa por la derecha (combinación externa derecha: combinación externa en la que todos los registros del lado derecho de la operación RIGHT JOIN de la instrucción SQL de la consulta se agregan a los resultados de la consulta, aunque no haya valores coincidentes en el campo combinado de la tabla de la izquierda.). Las combinaciones externas por la derecha incluyen todos los registros de la segunda de las dos tablas (derecha), incluso si no hay valores coincidentes para los registros en la primera tabla (izquierda).

Por ejemplo, podría utilizar LEFT JOIN con las tablas Departamentos (izquierda) y Empleados (derecha) para seleccionar todos los departamentos, incluyendo aquellos que no tienen asignados ningún empleado. Para seleccionar todos los empleados, incluyendo los que no están asignados a ningún departamento, podría utilizar RIGHT JOIN.

En el siguiente ejemplo se muestra cómo se pueden combinar las tablas Categories (Categorías) y Products (Productos) en el campo CategoryID (IdCategoría). La consulta genera una lista de todas las categorías, incluyendo las que no contienen ningún producto:

SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;

En este ejemplo, CategoryID (IdCategoría) es el campo combinado, pero no está incluido en los resultados de la consulta porque no está incluido en la instrucción SELECT. Para incluir el campo combinado, introduzca el nombre del campo en la instrucción SELECT, en este caso, Categories.CategoryID.

 Notas 

Para crear un consulta que incluya sólo los registros en los que los datos de los campos combinados son los mismos, utilice una operación INNER JOIN.

  • Las operaciones LEFT JOIN o RIGHT JOIN pueden estar anidadas dentro de una operación INNER JOIN, pero una operación INNER JOIN no puede estar anidada dentro de las operaciones LEFT JOIN o RIGHT JOIN. Vea la descripción del procedimiento para anidar unas combinaciones dentro de otras en el tema INNER JOIN.
  • Puede unir varias cláusulas ON. Vea la descripción del procedimiento para vincular cláusulas en el tema INNER JOIN.

Si trata de combinar campos que contienen datos Memo (tipo de datos Memo: en una base de datos de Microsoft Access, es un tipo de datos de campo. Los campos Memo pueden contener hasta 65.535 caracteres.) o un Objeto OLE (tipo de datos Objeto OLE: tipo de datos de campo que se usa para objetos creados en otras aplicaciones que pueden vincularse o insertarse en una base de datos de Access.), se producirá un error.

 
 
Corresponde a:
Access 2007