T Sql 简明教程

T-SQL - Joining Tables

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 中有多种类型的联接可用 −

  1. INNER JOIN − 当两个表中都有匹配项时返回行。

  2. LEFT JOIN −从左表返回所有行,即使在右表中没有匹配项。

  3. RIGHT JOIN −从右表返回所有行,即使在左表中没有匹配项。

  4. FULL JOIN − 当其中一张表中存在匹配项时返回行。

  5. SELF JOIN − 这用于将表连接到自身,就好像该表是两张表一样,在 MS SQL Server 语句中临时重命名至少一张表。

  6. CARTESIAN JOIN – 返回两个或多个连接表中记录集的笛卡尔积。