T-SQL连接表
精华
小牛编辑
182浏览
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 的表,在全连接的帮助下将它们组合在一起。