T-SQL - Unione di tabelle
Il MS SQL Server Joinsviene utilizzata per combinare i record di due o più tabelle in un database. Un JOIN è un mezzo per combinare i campi di due tabelle utilizzando valori comuni a ciascuna.
Considera le seguenti due tabelle, (a) la tabella CLIENTI è la seguente:
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) Un'altra tabella è ORDINI come segue:
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
Uniamo queste due tabelle nella nostra istruzione SELECT come segue:
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
Il comando precedente produrrà il seguente output.
ID NAME AGE AMOUNT
2 Khilan 25 1560.00
3 kaushik 23 1500.00
3 kaushik 23 3000.00
4 Chaitali 25 2060.00
È evidente che il join viene eseguito nella clausola WHERE. Diversi operatori possono essere utilizzati per unire tabelle, come =, <,>, <>, <=,> =,! =, BETWEEN, LIKE e NOT; possono essere utilizzati tutti per unire le tabelle. Tuttavia, l'operatore più comune è il simbolo di uguale.
Tipi di join di MS SQL Server -
Sono disponibili diversi tipi di join in MS SQL Server:
INNER JOIN - Restituisce righe quando c'è una corrispondenza in entrambe le tabelle.
LEFT JOIN - Restituisce tutte le righe della tabella di sinistra, anche se non ci sono corrispondenze nella tabella di destra.
RIGHT JOIN - Restituisce tutte le righe della tabella di destra, anche se non ci sono corrispondenze nella tabella di sinistra.
FULL JOIN - Restituisce righe quando c'è una corrispondenza in una delle tabelle.
SELF JOIN - Viene utilizzato per unire una tabella a se stessa come se la tabella fosse due tabelle, rinominando temporaneamente almeno una tabella nell'istruzione MS SQL Server.
CARTESIAN JOIN - Restituisce il prodotto cartesiano dei set di record da due o più tabelle unite.