mysql - outer - right join oracle




¿Cuál es la diferencia entre INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN? (2)

Esta pregunta ya tiene una respuesta aquí:

¿Cuál es la diferencia entre INNER JOIN , LEFT JOIN , RIGHT JOIN y FULL JOIN en MySQL ?


Una cláusula SQL JOIN se utiliza para combinar filas de dos o más tablas, en función de un campo común entre ellas.

Hay diferentes tipos de combinaciones disponibles en SQL:

INNER JOIN : devuelve filas cuando hay una coincidencia en ambas tablas.

LEFT JOIN : devuelve todas las filas de la tabla izquierda, incluso si no hay coincidencias en la tabla derecha.

JUNTA DERECHA : devuelve todas las filas de la tabla derecha, incluso si no hay coincidencias en la tabla izquierda.

FULL JOIN : combina los resultados de las combinaciones externas izquierda y derecha.

La tabla combinada contendrá todos los registros de ambas tablas y completará NULL para las coincidencias faltantes en cada lado.

SELF JOIN : se utiliza para unir una tabla a sí misma como si la tabla fuera dos tablas, renombrando temporalmente al menos una tabla en la declaración SQL.

CARTESIAN JOIN : devuelve el producto cartesiano de los conjuntos de registros de las dos o más tablas unidas.

Podemos tomar cada una de las primeras cuatro combinaciones en Detalles:

Tenemos dos tablas con los siguientes valores.

TablaA

id  firstName                  lastName
.......................................
1   arun                        prasanth                 
2   ann                         antony                   
3   sruthy                      abc                      
6   new                         abc                                           

Tabla b

id2 age Place
................
1   24  kerala
2   24  usa
3   25  ekm
5   24  chennai

.................................................. ..................

UNIR INTERNAMENTE

Nota : da la intersección de las dos tablas, es decir, las filas que tienen en común en Tabla A y Tabla B

Sintaxis

SELECT table1.column1, table2.column2...
  FROM table1
 INNER JOIN table2
    ON table1.common_field = table2.common_field;

Aplícalo en nuestra tabla de muestra:

SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
  FROM TableA
 INNER JOIN TableB
    ON TableA.id = TableB.id2;

El resultado será

firstName       lastName       age  Place
..............................................
arun            prasanth        24  kerala
ann             antony          24  usa
sruthy          abc             25  ekm

UNIRSE IZQUIERDO

Nota : proporcionará todas las filas seleccionadas en la Tabla A, más cualquier fila seleccionada común en la TablaB.

Sintaxis

SELECT table1.column1, table2.column2...
  FROM table1
  LEFT JOIN table2
    ON table1.common_field = table2.common_field;

Aplícalo en nuestra tabla de muestra:

SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
  FROM TableA
  LEFT JOIN TableB
    ON TableA.id = TableB.id2;

Resultado

firstName                   lastName                    age   Place
...............................................................................
arun                        prasanth                    24    kerala
ann                         antony                      24    usa
sruthy                      abc                         25    ekm
new                         abc                         NULL  NULL

Unirse correctamente

Nota : proporcionará todas las filas seleccionadas en TableB, más cualquier fila seleccionada común en TableA.

Sintaxis

SELECT table1.column1, table2.column2...
  FROM table1
 RIGHT JOIN table2
    ON table1.common_field = table2.common_field;

Aplícalo en nuestra tabla de muestra:

SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
  FROM TableA
 RIGHT JOIN TableB
    ON TableA.id = TableB.id2;

Resultado

firstName                   lastName                    age     Place
...............................................................................
arun                        prasanth                    24     kerala
ann                         antony                      24     usa
sruthy                      abc                         25     ekm
NULL                        NULL                        24     chennai

ÚNETE COMPLETO

Nota : Devolverá todos los valores seleccionados de ambas tablas.

Sintaxis

SELECT table1.column1, table2.column2...
  FROM table1
  FULL JOIN table2
    ON table1.common_field = table2.common_field;

Aplícalo en nuestra tabla de muestra:

SELECT TableA.firstName,TableA.lastName,TableB.age,TableB.Place
  FROM TableA
  FULL JOIN TableB
    ON TableA.id = TableB.id2;

Resultado

firstName                   lastName                    age    Place
...............................................................................
arun                        prasanth                    24    kerala
ann                         antony                      24    usa
sruthy                      abc                         25    ekm
new                         abc                         NULL  NULL
NULL                        NULL                        24    chennai

Hecho interesante

Para INNER se une el pedido no importa.

Para las combinaciones EXTERNAS (IZQUIERDA, DERECHA o COMPLETA), el orden es importante

Mejor ir a este Link . Le dará detalles interesantes sobre el orden de unión.






outer-join