Avalados por :

Diferenças entre Inner join e Outer join: Descubra e ganhe pontos!

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

Por favor, alguém poderia me dizer quais são as diferenças entre Inner join e Outer join, por favor me digam.

Pontos serão recompensados.

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

4 Respuestas

0
Cargando...

Olá

Vou te dizer a diferença muito básica entre um inner join e um outer join...

Em um inner join, apenas as entradas que estão em ambas as tabelas são mostradas... por exemplo, se o join for no campo 'nome', então apenas as entradas que estão em ambas as tabelas serão mostradas na tabela de join...

Enquanto em um outer join, todas as entradas de ambas as tabelas são mostradas... por exemplo, se houver um valor X na tabela A e a tabela B não tiver X, então também será mostrado na tabela de join... a única diferença é que os valores correspondentes à tabela B serão nulos nesse momento...

Espero que tenha sido útil

Dê recompensas se foi útil

Cuide-se

Palak

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

Olá Prasad ,

Os dados que podem ser selecionados com uma visualização dependem principalmente se a visualização implementa uma junção interna ou uma junção externa.

Com uma junção interna, apenas os registros cruzados são obtidos para os quais há uma entrada em todas as tabelas usadas na visualização.

Com uma junção externa, também são selecionados registros para os quais não há uma entrada em algumas das tabelas usadas na visualização.

Portanto, o conjunto de resultados determinado por uma junção interna pode ser um subconjunto dos resultados determinados com uma junção externa.

Cumprimentos.

Eshwar.

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

Olá Durga Prasad,

Inner Joins:

++ A operação de união típica, que utiliza algum operador de comparação como = ou <>

++ Estes incluem equi-joins e natural joins

++ Os inner joins utilizam um operador de comparação para emparelhar linhas de duas tabelas com base nos valores em colunas comuns de cada tabela.

++ Por exemplo, recuperar todas as linhas onde o número de identificação do aluno é o mesmo em ambas as tabelas de alunos e cursos.

++ Os inner joins retornam linhas apenas quando há pelo menos uma linha de ambas as tabelas que corresponde à condição de união.

++ Os inner joins eliminam as linhas que não correspondem a uma linha da outra tabela

Outer Joins:

++ Os outer joins podem ser um left, um right ou um full outer join

++ Os outer joins, no entanto, retornam todas as linhas de pelo menos uma das tabelas ou visualizações mencionadas na cláusula FROM, desde que essas linhas atendam a qualquer condição de busca WHERE ou HAVING.

++ São recuperadas todas as linhas da tabela da esquerda referenciadas com um left outer join, e todas as linhas da tabela da direita referenciadas em um right outer join

++ São retornadas todas as linhas de ambas as tabelas em um full outer join

Acredito que isso vai te ajudar.

Se estiver satisfeito, recompense-me.

Cumprimentos

Yogesh Gupta

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

Olá Prasad,

O inner join é como a interseção, o que significa que todas as condições devem ser verdadeiras para que um registro seja incluído. Todas as condições são unidas por 'e'. O outer join é a união, onde os registros são unidos por 'ou'. Não tenho certeza sobre o extractor que você está criando. É um extractor de dados genérico? Se sim, você tem a opção de usar uma vista que seria criada no dicionário de dados, e nesse caso não pode adicionar lógica como a que você tem em seu código. Não tentaria colocar as 12 seleções em uma única consulta usando joins, extrairia os dados em tabelas internas usando fetches de array (use a cláusula for all entries), percorreria as tabelas internas e escreveria em uma tabela de saída. Tentar unir muitas tabelas complica demais o problema, na minha opinião.

-

-


Os dados que podem ser selecionados com uma vista dependem principalmente se a vista implementa um inner join ou um outer join. Com um inner join, você obtém apenas os registros do produto cruzado para os quais há uma entrada em todas as tabelas usadas na vista. Com um outer join, também são selecionados registros para os quais não há uma entrada em algumas das tabelas usadas na vista. O conjunto de resultados determinado por um inner join pode ser, portanto, um subconjunto dos resultados determinados com um outer join.

Exemplo 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 da empresa' .

Left outer join

Geralmente, ao definir InfoSets, os objetos são vinculados através de operadores de inner join. No entanto, você também pode usar left outer joins. O inner join e o left outer join diferem apenas na situação em que uma das tabelas envolvidas não contém nenhum registro adequado que atenda às condições de união.

Com um inner join (tabela 1 inner join tabela 2), nenhum registro é incluído no conjunto de resultados neste caso. No entanto, isso significa que o registro correspondente da tabela 1 não é considerado no conjunto de resultados.

Com um left outer join (tabela 1 left outer join tabela2), exatamente um registro é incluído no conjunto de resultados neste caso. Neste registro, os campos da tabela 1 contêm os valores do registro da tabela 1 e os campos da tabela 2 estão todos preenchidos com o valor inicial.

Exemplo 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.

-

-


Sintaxe SQL para os Joins.

INNER JOIN: Recupera clientes com pedidos apenas. Por exemplo, você deseja determinar a quantidade pedida por cada cliente e só quer ver aqueles que pediram 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?