T-SQL连接
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的表,我们使用完全连接将它们合并。