MySQL tiene principalmente dos tipos de uniones llamadas LEFT JOIN y RIGHT JOIN. La principal diferencia entre estas uniones es la inclusión de filas no coincidentes . LEFT JOIN incluye todos los registros del lado izquierdo y las filas coincidentes de la tabla derecha, mientras que RIGHT JOIN devuelve todas las filas del lado derecho y las filas no coincidentes de la tabla izquierda. En esta sección, conoceremos las diferencias populares entre la unión IZQUIERDA y DERECHA. Antes de explorar la comparación, primero comprendamos las cláusulas JOIN, LEFT JOIN y RIGHT JOIN en mysql .
¿Qué es la cláusula JOIN?
A unirse se utiliza para consultar datos de varias tablas y devuelve el resultado combinado de dos o más tablas mediante una condición. La condición en la cláusula de unión indica cómo se hacen coincidir 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 nulo si no encuentra ningún registro coincidente. También se le conoce como Izquierda combinación externa . Entonces, Outer es la palabra clave opcional para usar con Left Join.
Podemos entenderlo con la siguiente representación visual:
Para leer más información sobre la unión IZQUIERDA, 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 solo aquellos resultados de la otra tabla que cumplieron la condición de unión especificada. Si encuentra registros no coincidentes en la tabla del lado izquierdo, devuelve un valor nulo. También se le conoce como Unión exterior derecha . Entonces, Outer es la cláusula opcional para usar con Right Join.
Podemos entenderlo con lo 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:
SELECT column_list FROM table_name1 LEFT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
La siguiente es la sintaxis general de LEFT OUTER JOIN:
SELECT column_list FROM table_name1 LEFT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
Sintaxis de la cláusula RIGHT JOIN
La siguiente es la sintaxis general de RIGHT JOIN:
SELECT column_list FROM table_name1 RIGHT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
La siguiente es la sintaxis general de RIGHT OUTER JOIN:
SELECT column_list FROM table_name1 RIGHT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition
UNIÓN IZQUIERDA vs. UNIÓN DERECHA
La siguiente tabla comparativa explica sus principales diferencias de forma rápida:
UNIRSE A LA IZQUIERDA | ÚNETE DERECHO |
---|---|
Une dos o más tablas, devuelve todos los registros de la tabla de la izquierda y las filas coincidentes de la tabla de la 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 una fila coincidente en la tabla del lado derecho. | El conjunto de resultados contendrá un valor nulo si no hay una fila coincidente en la tabla del lado izquierdo. |
También se conoce como UNIÓN EXTERIOR IZQUIERDA. | También se le llama UNIÓN EXTERIOR DERECHA. |
Ejemplo
Entendamos las diferencias entre ambas uniones a través de ejemplos. Supongamos que tenemos una tabla llamada ' cliente ' y ' pedidos ' que contiene los siguientes datos:
Tabla: cliente
Tabla: pedidos
Ejemplo de UNIÓN IZQUIERDA
La siguiente declaración SQL devuelve los registros coincidentes de ambas tablas utilizando la consulta LEFT JOIN:
SELECT cust_id, cust_name, order_num, order_date FROM customer LEFT JOIN orders ON customer.cust_id = orders.order_id WHERE order_date <'2020-04-30'; < pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-5.webp" alt="Left Join vs Right Join"> <p> <strong>RIGHT JOIN Example</strong> </p> <p>Following SQL statement returns the matching records from both tables using the RIGHT JOIN query:</p> <pre> SELECT cust_id, cust_name, occupation, order_num, order_date FROM customer RIGHT JOIN orders ON cust_id = order_id ORDER BY order_date; </pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-6.webp" alt="Left Join vs Right Join"> <hr></'2020-04-30';>
Después de la ejecución exitosa de la consulta, obtendremos el siguiente resultado:
'2020-04-30';>