T-SQL - Juntando Tabelas
O MS SQL Server Joinscláusula é usada para combinar registros de duas ou mais tabelas em um banco de dados. Um JOIN é um meio de combinar campos de duas tabelas usando valores comuns a cada uma.
Considere as duas tabelas a seguir, (a) A tabela CLIENTES é a seguinte -
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
(b) Outra tabela é ORDERS da seguinte forma -
OID DATE CUSTOMER_ID AMOUNT
100 2009-10-08 00:00:00.000 3 1500.00
101 2009-11-20 00:00:00.000 2 1560.00
102 2009-10-08 00:00:00.000 3 3000.00
103 2008-05-20 00:00:00.000 4 2060.00
Vamos juntar essas duas tabelas em nossa instrução SELECT da seguinte forma -
SELECT ID, NAME, AGE, AMOUNT
FROM CUSTOMERS, ORDERS
WHERE CUSTOMERS.ID = ORDERS.CUSTOMER_ID
OR
SELECT A.ID, A.NAME, A.AGE, B.AMOUNT
FROM CUSTOMERS A inner join ORDERS B on A.ID = B.Customer_ID
O comando acima produzirá a seguinte saída.
ID NAME AGE AMOUNT
2 Khilan 25 1560.00
3 kaushik 23 1500.00
3 kaushik 23 3000.00
4 Chaitali 25 2060.00
É perceptível que a junção é realizada na cláusula WHERE. Vários operadores podem ser usados para unir tabelas, como =, <,>, <>, <=,> =,! =, BETWEEN, LIKE e NOT; todos eles podem ser usados para unir tabelas. No entanto, o operador mais comum é o símbolo de igual.
Tipos de junção do MS SQL Server -
Existem diferentes tipos de junções disponíveis no MS SQL Server -
INNER JOIN - Retorna linhas quando há uma correspondência em ambas as tabelas.
LEFT JOIN - Retorna todas as linhas da tabela da esquerda, mesmo se não houver correspondências na tabela da direita.
RIGHT JOIN - Retorna todas as linhas da tabela da direita, mesmo se não houver correspondências na tabela da esquerda.
FULL JOIN - Retorna linhas quando há uma correspondência em uma das tabelas.
SELF JOIN - É usado para unir uma tabela a si mesma como se a tabela fosse duas tabelas, renomeando temporariamente pelo menos uma tabela na instrução do MS SQL Server.
CARTESIAN JOIN - Retorna o produto cartesiano dos conjuntos de registros de duas ou mais tabelas unidas.