MS SQL Server 联接子句用于组合数据库中两个或多个表的记录. 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中有不同类型的联接可用服务器 : 去;
INNER JOIN : 当两个表中都匹配时返回行.
LEFT JOIN : 返回左表中的所有行,即使右表中没有匹配项.
RIGHT JOIN : 返回右表中的所有行,即使左表中没有匹配项.
FULL JOIN : 当其中一个表中存在匹配时返回行.
SELF JOIN : 这用于将表连接到自身,就像表是两个表一样,在MS SQL Server语句中临时重命名至少一个表.
CARTESIAN JOIN : 返回两个或多个连接表中记录集的笛卡尔积.