DB2 - Exemplos simples - RIGHT JOIN



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

DB2 - Exemplos simples - RIGHT JOIN

The RIGHT JOIN clause is a reversed version of the LEFT JOIN clause.
The RIGHT JOIN clause allows you to query data from two or more tables.
Suppose, you have two tables named T1 and T2, which are called the left table and the right table respectively.
The RIGHT JOIN clause selects data starting from the right table (T2).
It compares each row in the right table (T2) with every row in the left table (T1).
If two rows satisfy the join condition, the RIGHT JOIN clause combines columns of these rows into a new row and includes this new row in the result.
In case a row in the right table does not have a matching row in the left table, the RIGHT JOIN clause still combines the columns of the row in the right table with the columns of the row in the left table.
However, the columns in the left table will have NULL values.
In other words, the RIGHT JOIN clause returns all rows from the right table (T2) and matching rows or NULL values from the left table (T1).
The RIGHT JOIN command returns all rows from the right table, and the matching records from the left table.
The result is NULL from the left side, when there is no match.

A cláusula RIGHT JOIN é uma versão reversa da cláusula LEFT JOIN.
A cláusula RIGHT JOIN permite consultar dados de duas ou mais tabelas.
Suponha que você tenha duas tabelas chamadas T1 e T2, que são chamadas de tabela da esquerda e tabela da direita, respectivamente.
A cláusula RIGHT JOIN seleciona dados a partir da tabela certa ( T2).
Ele compara cada linha da tabela da direita ( T2) com todas as linhas da tabela da esquerda ( T1).
Se duas linhas satisfizerem a condição de junção, a cláusula RIGHT JOIN combina as colunas dessas linhas em uma nova linha e inclui essa nova linha no resultado.
Caso uma linha da tabela à direita não tenha uma linha correspondente na tabela da esquerda, a cláusula RIGHT JOIN ainda combina as colunas da linha da tabela da direita com as colunas da linha da tabela da esquerda.
No entanto, as colunas da tabela à esquerda terão valores NULL.
Em outras palavras, a cláusula RIGHT JOIN retorna todas as linhas da tabela da direita ( T2) e linhas ou valores NULL correspondentes da tabela da esquerda ( T1).
O comando RIGHT JOIN retorna todas as linhas da tabela da direita e os registros correspondentes da tabela da esquerda.
O resultado é NULL do lado esquerdo, quando não há correspondência.

The following SQL will return all employees, and any orders they might have placed:
O seguinte SQL retornará todos os funcionários e todos os pedidos que eles possam ter feito:

    SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
      FROM Orders
           RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
     ORDER BY Orders.OrderID;

Note:
The RIGHT JOIN keyword returns all records from the right table (Employees), even if there are no matches in the left table (Orders).
Nota:
A palavra-chave RIGHT JOIN retorna todos os registros da tabela da direita (Funcionários), mesmo se não houver correspondências na tabela da esquerda (Pedidos).

Example - Exemplo:

DB2 Database - Banco de dados DB2:

Orderid Customernumber Orderdate
1001102020-09-08
1002992020-09-01
1003172020-08-25
1004762020-09-19
1005442020-09-25

Let's look at the "Customers" table data below: Vejamos os dados da tabela "Clientes" abaixo:

Customernumber Customername Country
76JackAmerica
17JancyGermany
20CarmenRussia
10RobertIndia
99BrianChina

Notice that the "Customernumber" column in the "Orders" table refers to the "Customernumber" in the "Customers" table.
The relationship between the two tables above is the "Customernumber" column.
Observe que a coluna "Número personalizado" na tabela "Pedidos" se refere ao "Número personalizado" na tabela "Clientes".
A relação entre as duas tabelas acima é a coluna "Número personalizado".

Let us see how to create SQL statement that will return all Customername, and any orders they might have placed:
Vamos ver como criar uma instrução SQL que retornará todos os nomes de usuário personalizados e todos os pedidos que eles possam ter feito:

    SELECT Customers.Customername, Orders.Orderid
      FROM Orders
           LEFT JOIN Customers ON Orders.Customernumber = Customers.Customernumber;
     ORDER BY Customers.Customername;

Explanation - Explicação::

The RIGHT JOIN keyword returns all records from the right table (Customers), even if there are no matches in the left table (Orders).
A palavra-chave RIGHT JOIN retorna todos os registros da tabela da direita (Clientes), mesmo se não houver correspondências na tabela da esquerda (Pedidos).

Result - Resultado:

Customername Orderid
Brian1002
Carmennull
Jack1004
Jancy1003
Robert1001

Have you noticed the RIGHT outer and LEFT outer join result?
The result is same.
Do you know why?
because we just interchanged the table in SQL statement.
Você notou o resultado da RIGHT outer e da LEFT outer join? O resultado é o mesmo.
Você sabe por quê?
porque acabamos de trocar a tabela na instrução SQL.