📅  最后修改于: 2020-12-29 04:51:21             🧑  作者: Mango
MS SQL Server Joins子句用于合并数据库中两个或多个表中的记录。 JOIN是一种通过使用每个表的公用值来组合两个表中的字段的方法。
考虑以下两个表,(a)CUSTOMERS表如下-
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)另一个表是ORDERS,如下所示-
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
让我们将这两个表加入到SELECT语句中,如下所示:
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
上面的命令将产生以下输出。
ID NAME AGE AMOUNT
2 Khilan 25 1560.00
3 kaushik 23 1500.00
3 kaushik 23 3000.00
4 Chaitali 25 2060.00
值得注意的是,联接是在WHERE子句中执行的。可以使用多个运算符来联接表,例如=,<,>,<>,<=,> =,!=,BETWEEN,LIKE和NOT;它们都可以用于联接表。但是,最常见的运算符是等号。
MS SQL Server连接类型-
MS SQL Server中有可用的不同类型的联接-
INNER JOIN-当两个表都匹配时返回行。
LEFT JOIN-返回左表中的所有行,即使右表中没有匹配项。
RIGHT JOIN-返回右表中的所有行,即使左表中没有匹配项。
FULL JOIN-当其中一张表匹配时,返回行。
SELF JOIN-用于将一个表与其自身连接,就好像该表是两个表一样,临时重命名MS SQL Server语句中的至少一个表。
笛卡尔联接-从两个或多个联接表返回记录集的笛卡尔乘积。