DB2 - Exemplos simples - JOIN



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

DB2 - Exemplos simples - JOIN

When you want to view the data from multiple tables, you can use the SELECT statement with joins.
The join associates the rows from one table with rows from another table based on a specified condition, typically of matching column values. Db2 supports various kinds of joins including inner join, left outer join, right outer join and full outer join.

Quando você deseja visualizar os dados de várias tabelas, pode usar a SELECTinstrução com junções.
A junção associa as linhas de uma tabela com linhas de outra tabela com base em uma condição especificada, geralmente de valores de coluna correspondentes.
O Db2 suporta vários tipos de junções, incluindo junção interna (INNER JOIN) , junção externa esquerda(LEFT OUTER JOIN) , junção externa direita (RIGHT OUTER JOIN) e junção externa completa (FULL OUTER JOIN).

INNER JOIN

The INNER JOIN command returns rows that have matching values in both tables.
O comando INNER JOIN retorna linhas que possuem valores correspondentes em ambas as tabelas.

The following SQL selects all orders with customer information:
O seguinte SQL seleciona todos os pedidos com informações do cliente:

    SELECT Orders.OrderID, Customers.CustomerName
      FROM Orders
           INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

The following SQL statement selects all orders with customer and shipper information:
A seguinte instrução SQL seleciona todos os pedidos com informações do cliente e do remetente:

   SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
     FROM ((Orders
           INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
           INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);

Note:
The INNER JOIN keyword selects all rows from both tables as long as there is a match between the columns.
If there are records in the "Orders" table that do not have matches in "Customers", these orders will not be shown!
Nota:
A palavra-chave INNER JOIN seleciona todas as linhas de ambas as tabelas, desde que haja uma correspondência entre as colunas.
Se houver registros na tabela "Pedidos" que não tenham correspondências em "Clientes", esses pedidos não serão mostrados!

LEFT JOIN

The LEFT JOIN command returns all rows from the left table, and the matching rows from the right table.
The result is NULL from the right side, if there is no match.
O comando LEFT JOIN retorna todas as linhas da tabela esquerda e as linhas correspondentes da tabela direita.
O resultado é NULL do lado direito, se não houver correspondência.

The following SQL will select all customers, and any orders they might have:
O seguinte SQL selecionará todos os clientes e quaisquer pedidos que eles possam ter:

    SELECT Customers.CustomerName, Orders.OrderID
      FROM Customers
           LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
     ORDER BY Customers.CustomerName;

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

RIGHT JOIN

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

FULL OUTER JOIN

The FULL OUTER JOIN command returns all rows when there is a match in either left table or right table.
O comando FULL OUTER JOIN retorna todas as linhas quando há uma correspondência na tabela da esquerda ou na tabela da direita.

The following SQL statement selects all customers, and all orders:
A seguinte instrução SQL seleciona todos os clientes e todos os pedidos:

    SELECT Customers.CustomerName, Orders.OrderID
      FROM Customers
           FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
      ORDER BY Customers.CustomerName;

Note: The FULL OUTER JOIN keyword returns all the rows from the left table (Customers), and all the rows from the right table (Orders).
If there are rows in "Customers" that do not have matches in "Orders", or if there are rows in "Orders" that do not have matches in "Customers", those rows will be listed as well.
Nota:
A palavra-chave FULL OUTER JOIN retorna todas as linhas da tabela esquerda (Clientes) e todas as linhas da tabela direita (Pedidos).
Se houver linhas em "Clientes" que não tenham correspondências em "Pedidos" ou se houver linhas em "Pedidos" que não tenham correspondências em "Clientes", essas linhas também serão listadas.