MySQL tiene principalmente dos tipos de joins llamados LEFT JOIN y RIGHT JOIN. La principal diferencia entre estas uniones es la inclusión de filas no coincidentes. El LEFT JOIN incluye todos los registros del lado izquierdo y las filas coincidentes de la tabla derecha, mientras que el RIGHT JOIN devuelve todas las filas del lado derecho y las filas no coincidentes de la tabla izquierda. En esta sección, vamos a conocer las diferencias populares entre el LEFT y el RIGHT join. Antes de explorar la comparación, vamos a entender primero la cláusula JOIN, LEFT JOIN y RIGHT JOIN en MySQL.
¿Qué es la cláusula JOIN?
Una unión se utiliza para consultar los datos de varias tablas y devuelve el resultado combinado de dos o más tablas a través de una condición. La condición en la cláusula join indica cómo se emparejan las columnas entre las tablas especificadas.
¿Qué es la cláusula LEFT JOIN?
La cláusula Left Join une dos o más tablas y devuelve todas las filas de la tabla izquierda y los registros coincidentes de la tabla derecha o devuelve null si no encuentra ningún registro coincidente. También se conoce como Left Outer Join. Por lo tanto, Outer es la palabra clave opcional para utilizar con Left Join.
Podemos entenderlo con la siguiente representación visual:
Para leer más información sobre el LEFT join, haga clic aquí.
¿Qué es la cláusula RIGHT JOIN?
La cláusula Right Join une dos o más tablas y devuelve todas las filas de la tabla de la derecha, y sólo aquellos resultados de la otra tabla que cumplan la condición de unión especificada. Si encuentra registros no coincidentes de la tabla de la izquierda, devuelve el valor Nulo. También se conoce como Right Outer Join. Por lo tanto, Outer es la cláusula opcional a utilizar con Right Join.
Podemos entenderlo con la siguiente representación visual.
Para leer más información sobre RIGHT JOIN, haga clic aquí.
Sintaxis de la cláusula LEFT JOIN
La siguiente es la sintaxis general de LEFT JOIN:
La siguiente es la sintaxis general de LEFT OUTER JOIN:
Sintaxis de la cláusula RIGHT JOIN
La siguiente es la sintaxis general de RIGHT JOIN:
La siguiente es la sintaxis general de RIGHT OUTER JOIN:
LEFT JOIN vs. RIGHT JOIN
La siguiente tabla comparativa explica sus principales diferencias de forma rápida:
LEFT JOIN | RIGHT JOIN |
---|---|
Une dos o más tablas, devuelve todos los registros de la tabla izquierda y las filas coincidentes de la tabla derecha. | Se utiliza para unir dos o más tablas, devuelve todos los registros de la tabla derecha y las filas coincidentes de la tabla izquierda. |
El conjunto de resultados contendrá un valor nulo si no hay ninguna fila coincidente en la tabla del lado derecho. | El conjunto de resultados contendrá un valor nulo si no hay ninguna fila coincidente en la tabla del lado izquierdo. |
También se conoce como LEFT OUTER JOIN. | También se llama RIGHT OUTER JOIN. |
Ejemplo
Entendamos las diferencias entre ambas uniones mediante ejemplos. Supongamos que tenemos una tabla llamada «cliente» y «pedidos» que contiene los siguientes datos:
Tabla: cliente
Tabla: pedidos
Ejemplo de LEFT JOIN
La siguiente sentencia SQL devuelve los registros coincidentes de ambas tablas utilizando la consulta LEFT JOIN:
Después de la ejecución exitosa de la consulta, obtendremos la salida como sigue:
Junta derecha Ejemplo
La siguiente sentencia SQL devuelve los registros coincidentes de ambas tablas utilizando la consulta RIGHT JOIN:
Después de la ejecución exitosa de la consulta, obtendremos la salida como sigue: