DB2 - Exemplos simples - INNER JOIN


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES, Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

DB2 - Exemplos simples - INNER JOIN

Uma cláusula JOIN é usada para combinar linhas de duas ou mais tabelas, com base em uma coluna relacionada entre elas.

Uma junção é um mecanismo usado para associar tabelas em uma instrução SELECT.

Para criar uma junção, você deve especificar todas as tabelas a serem incluídas e como elas se relacionam entre si.

Vejamos os dados da tabela "PEDIDOS" abaixo:

NROPEDIDONROCLIENTEDATAPEDIDO
1001102020-09-08
1002992020-09-01
1003172020-08-25
1004762020-09-19

Vejamos os dados da tabela "CLIENTES" abaixo:

NROCLIENTENOMECLIENTEPAIS
76JackAmerica
17JancyGermany
10RobertIndia
99BrianChina

Observe que a coluna "NROCLIENTE" na tabela "PEDIDOS" se refere ao "NROCLIENTE" na tabela "CLIENTES".
A relação entre as duas tabelas acima é a coluna "NROCLIENTE".

Vamos ver como criar uma instrução SQL que seleciona registros que possuem valores correspondentes em ambas as tabelas.

Exemplo:

    SELECT PEDIDOS.NROPEDIDO
    ,      CLIENTES.NOMECLIENTE
    ,      PEDIDOS.DATAPEDIDO
      FROM PEDIDOS
     INNER JOIN CLIENTES ON PEDIDOS.NROCLIENTE = CLIENTES.NROCLIENTE;

Resultado:

NROPEDIDONOMECLIENTEDATAPEDIDO
1001Robert2020-09-08
1002Brian2020-09-01
1003Jancy2020-08-25
1004Jack2020-09-19

Explicação:

A instrução SELECT começa da mesma maneira que todas as instruções que você examinou até agora, especificando as colunas a serem recuperadas.
A grande diferença aqui é que duas das colunas especificadas (NROPEDIDO e DATAPEDIDO) estão em uma tabela, enquanto a outra (NOMECLIENTE) está em outra tabela.

Ao contrário de todas as instruções SELECT anteriores, esta possui duas tabelas listadas na cláusula FROM, PEDIDOS e CLIENTES.

Você deve usar o nome de coluna totalmente qualificado (tabela e coluna separadas por um ponto) sempre que houver uma possível ambigüidade sobre a qual coluna você está se referindo.

Neste caso, você especifica PEDIDOS.NROPEDIDO, CLIENTES.NOMECLIENTE e PEDIDOS.DATAPEDIDO.

Tipos de junções (Joins):

Existem dois tipos de junções:

  • Inner Join - recupera valores correspondentes em ambas as tabelas.

  • Outer Join - recupera todos os registros da tabela da esquerda e os registros correspondentes da tabela da direita.

    1. Left Outer Join - recupera todos os registros da tabela da esquerda e os registros correspondentes da tabela da direita.

    2. Right Outer Join - recupera todos os registros da tabela da direita e os registros correspondentes da tabela da esquerda.

    3. Full Outer Join - recupera todos os registros de ambas as tabelas.

Veja também: