T-SQL连接表

精华
小牛编辑
178浏览
2023-03-14

T-SQL 组合来自两个或多个表的记录。它用于将两个或多个表中的记录连接到数据库中。JOIN 用于通过使用彼此相等的值连接许多表中的字段。

假设有下面两张表,(a) CUSTOMERS表,记录如下——

ID    NAME    AGE    ADDRESS    SALARY
1    Hamilton    23    Australia    34000
2    Warner    34    England    22000
3    Martin    28    China    25000
4    Twinkle    30    Turkey    50000
5    Tinu    32    Nepal    45000
6    Michal    31    Bhutan    20000
7    Harper    20    Bangladesh    15000

(b) 另一个表 ORDERS,记录如下 -

OID    DATE    CUSTOMER_ID    AMOUNT
100    2020-10-08 00.00.000    3    15000
101    2020-11-20 00.00.000    2    15600
102    2020-10-08 00.00.000    3    30000
103    2019-05-20 00.00.000    4    20600

在 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

执行上面查询语句,得到以下结果 -

连接在 WHERE 子句中执行。许多运算符将用于连接表,例如: =、<、>、<>、<=、>=、!=,like,BETWEEN 和 NOT。

MS SQL 中的连接类型
MS SQL Server 中使用了多种类型的连接 -

INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
SELF JOIN
CARTESIAN JOIN

连接类型

类型 描述
INNER JOIN 当表中有匹配项时返回行。
LEFT JOIN 它从第一个(最左边的)表中选择匹配正确表记录的记录。
RIGHT JOIN 如果在左表中没有找到任何匹配项,则从右表中选择所有行。
FULL JOIN 如果其中一个表中有任何匹配项,则行以完全连接方式连接。
SELF JOIN SELF JOIN 用于连接一个表,如果有两个表,在MS SQL SERVER 中至少重命名一个表。
CARTESIAN JOIN 笛卡尔积在T-SQL 中设置了许多连接表的记录。

例子:
这里有两个名为 Color 和 Size 的表,在全连接的帮助下将它们组合在一起。