¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Diferencias entre Inner join y Outer join: ¡Descúbrelo y gana puntos!

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 155 Vistas
0
Cargando...

Por favor, alguien podría decirme cuáles son las diferencias entre Inner join y Outer join, por favor díganme.

Se recompensarán puntos.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola

Solo te diré la diferencia muy básica entre un inner join y un outer join...

En un inner join solo se muestran las entradas que están en ambas tablas... por ejemplo, si el join es en el campo 'nombre', entonces solo se mostrarán en la tabla de join aquellas entradas que estén en ambas tablas...

Mientras que en un outer join se mostrarán todas las entradas de ambas tablas... por ejemplo, si hay un valor X en la tabla A y la tabla B no tiene X, entonces también se mostrará en la tabla de join... lo único es que los valores correspondientes a la tabla Y serán nulos en ese momento...

Espero que haya sido útil

Da recompensas si fue de ayuda

Cuídate

Palak

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Prasad ,

Los datos que se pueden seleccionar con una vista dependen principalmente de si la vista implementa una unión interna o una unión externa.

Con una unión interna, solo se obtienen los registros del producto cruzado para los cuales hay una entrada en todas las tablas utilizadas en la vista.

Con una unión externa, también se seleccionan registros para los cuales no hay una entrada en algunas de las tablas utilizadas en la vista.

Por lo tanto, el conjunto de resultados determinado por una unión interna puede ser un subconjunto de los resultados determinados con una unión externa.

Saludos.

Eshwar.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Durga Prasad,

Inner Joins:

++ La operación de unión típica, que utiliza algún operador de comparación como = o <>

++ Estos incluyen equi-joins y natural joins

++ Los inner joins utilizan un operador de comparación para emparejar filas de dos tablas basadas en los valores en columnas comunes de cada tabla.

++ Por ejemplo, recuperar todas las filas donde el número de identificación del estudiante es el mismo en ambas tablas de estudiantes y cursos.

++ Los inner joins devuelven filas solo cuando hay al menos una fila de ambas tablas que coincida con la condición de unión.

++ Los inner joins eliminan las filas que no coinciden con una fila de la otra tabla

Outer Joins:

++ Los outer joins pueden ser un left, un right o un full outer join

++ Los outer joins, sin embargo, devuelven todas las filas de al menos una de las tablas o vistas mencionadas en la cláusula FROM, siempre que esas filas cumplan con cualquier condición de búsqueda WHERE o HAVING.

++ Se recuperan todas las filas de la tabla izquierda referenciada con un left outer join, y todas las filas de la tabla derecha referenciadas en un right outer join

++ Se devuelven todas las filas de ambas tablas en un full outer join

Creo que te ayudará.

Si estás satisfecho, recompénsame..

Saludos cordiales

Yogesh Gupta

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Prasad,

El inner join es como la intersección, lo que significa que todas las condiciones deben ser verdaderas para que un registro sea incluido. Todas las condiciones se unen por 'y'. El outer join es la unión, donde los registros se unen por 'o'. No estoy seguro acerca del extractor que estás creando. ¿Es un extractor de datos genérico? Si es así, tienes la opción de usar una vista que se crearía en el diccionario de datos, y en ese caso no puedes agregar lógica como la que tienes en tu código. No intentaría poner las 12 selecciones en una sola consulta usando joins, sacaría los datos en tablas internas usando fetches de array (usa la cláusula for all entries), recorrería las tablas internas y escribiría en una tabla de salida. Intentar unir demasiadas tablas complica demasiado el problema en mi opinión.

-

-


Los datos que se pueden seleccionar con una vista dependen principalmente de si la vista implementa un inner join o un outer join. Con un inner join, solo obtienes los registros del producto cruzado para los cuales hay una entrada en todas las tablas utilizadas en la vista. Con un outer join, también se seleccionan registros para los cuales no hay una entrada en algunas de las tablas utilizadas en la vista. El conjunto de resultados determinado por un inner join puede ser, por lo tanto, un subconjunto de los resultados determinados con un outer join.

Ejemplo de Inner join:

SELECT A EBELN A LIFNR A KNUMV B EBELP B NETWR B NETPR B WERKS B MATNR

L NAME1 L NAME2

FROM EKKO AS A

INNER JOIN EKPO AS B ON A EBELN = B EBELN

INNER JOIN LFA1 AS L ON L LIFNR = A LIFNR

  • INNER JOIN EKKN AS C ON C EBELN = A EBELN

INTO CORRESPONDING FIELDS OF TABLE itab

WHERE B~BUKRS = 'código de la empresa' .

Left outer join

Por lo general, al definir InfoSets, los objetos se vinculan a través de operadores de inner join. Sin embargo, también puedes usar left outer joins. El inner join y el left outer join solo difieren en la situación en la que una de las tablas involucradas no contiene ningún registro adecuado que cumpla las condiciones de unión.

Con un inner join (tabla 1 inner join tabla 2), ningún registro se incluye en el conjunto de resultados en este caso. Sin embargo, esto significa que el registro correspondiente de la tabla 1 no se considera en el conjunto de resultados.

Con un left outer join (tabla 1 left outer join tabla2), exactamente un registro se incluye en el conjunto de resultados en este caso. En este registro, los campos de la tabla 1 contienen los valores del registro de la tabla 1 y los campos de la tabla 2 están todos llenos con el valor inicial.

Ejemplo de left outer join:

DATA: CUSTOMER TYPE SCUSTOM,

BOOKING TYPE SBOOK.

SELECT SCUSTOM NAME SCUSTOM POSTCODE SCUSTOM~CITY

SBOOK FLDATE SBOOK CARRID SBOOK CONNID SBOOK BOOKID

INTO (CUSTOMER-NAME, CUSTOMER-POSTCODE, CUSTOMER-CITY,

BOOKING-FLDATE, BOOKING-CARRID, BOOKING-CONNID,

BOOKING-BOOKID)

FROM SCUSTOM LEFT OUTER JOIN SBOOK

ON SCUSTOM ID = SBOOK CUSTOMID AND

SBOOK~FLDATE = '20081015'

ORDER BY SCUSTOM NAME SBOOK FLDATE.

WRITE: / CUSTOMER-NAME, CUSTOMER-POSTCODE, CUSTOMER-CITY,

BOOKING-FLDATE, BOOKING-CARRID, BOOKING-CONNID,

BOOKING-BOOKID.

ENDSELECT.

-

-


Sintaxis SQL para los Joins.

INNER JOIN: Recupera clientes con pedidos solamente. Por ejemplo, quieres determinar la cantidad pedida por cada cliente y solo quieres ver aquellos que han pedido algo.

SELECT Customers. , Orders.

FROM Customers INNER JOIN Orders ON Customers.CustomerID =

Orders

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?