quarta-feira, 3 de dezembro de 2008

JOIN, exemplos utilizando padrão ANSI (utiliza-se esta sintaxe em qualquer banco de dados)

Exemplo INNER JOIN







SELECT Employees.Name, Orders.Product
FROM Employees
INNER JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID


Este exmplo exibe somente o que for encontrado nas duas tabelas, se houver um name sem product, então esta linha não será selecionada.



Resultado




















NameProduct
Hansen, OlaPrinter
Svendson, StephenTable
Svendson, StephenChair

Examplo LEFT JOIN







SELECT Employees.Name, Orders.Product
FROM Employees
LEFT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID



Este exmplo returna todas as linhas primeira tabela (Employees), mesmo que não haja registros na segunda tabela (Orders).


Resultado





























NameProduct
Hansen, OlaPrinter
Svendson, Tove 
Svendson, StephenTable
Svendson, StephenChair
Pettersen, Kari 

Examplo RIGHT JOIN


List all orders, and who has ordered - if any.







SELECT Employees.Name, Orders.Product
FROM Employees
RIGHT JOIN Orders
ON Employees.Employee_ID=Orders.Employee_ID



Neste exmplo parece que não há diferença entre INNER e RIGHT, mas o RIGHT faz o oposto de LEFT. Retorna todas as linhas da segunda tabela (Orders), mesmo que não haja registros na primeira tabela (Employees) , ou seja, todos os products são exibidos, mesmo que não haja names.

Neste , todos os products possuem names.


Resultado





















NameProduct
Hansen, OlaPrinter
Svendson, StephenTable
Svendson, StephenChair

Nenhum comentário: