T-SQL - 连接表

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 : 返回两个或多个连接表中记录集的笛卡尔积.