mssql sqlserver 联结表简介


摘要:
下文将讲述sql中联结表的生成方法
联结表:是将多张表组合为一个结果集合
联结表需要采用select 脚本对表进行关联,将多个表返回一组集合输出,我们这种操作方式称之为”联结表”。
内连接 外连接 左连接 右连接都可以生成联结表


例:
使用select 做简单的连接-自然联结
select A.A,A.B,B.C,B.D from A , B where A.B=B.B 普通连接 效果等同于内连接
———————————————–
select * from A,B —-输出A表和B表的所有组合
———————————————-
内联结(又称之为内连接)
SELECT A.A, A.B, B.C
FROM A INNER JOIN B
ON A.keyId = B.keyId;
——————————————
联结多个表
SELECT A.A, A.B, B.C,C.D
FROM A, B, C
WHERE A.keyId = B.keyId
AND B.Name = C.Name
AND A.Qty = 100;
——————————————–
–联结查询
SELECT A.A, A.B, B.C,C.D
FROM A, B, C
WHERE A.keyId = B.keyId
AND B.Name = C.Name
AND A.Qty = 100;
——————————————–
自联结
例:获取一个递增结余的自联结

select t1.keyId,t1.qt_date,t1.qt_dkfs,t1.qt_srMoney,t1.qt_zcMoney,
sum(t2.qt_srMoney-t2.qt_zcMoney) as [结余数]
from cteName t1,cteName t2
where t1.keyId>=t2.keyId
group by t1.qt_date,t1.qt_dkfs,t1.qt_srMoney,t1.qt_zcMoney,t1.keyId
——————————————–
左联结
显示左表所有行数据,需要使用RIGHT OUTER JOIN,如下所示:
SELECT A.A,A.B,B.C
FROM A left OUTER JOIN B
ON A.keyId = b.keyId;

——————————————–
右联结
显示右表所有行数据,需要使用RIGHT OUTER JOIN,如下所示:
SELECT A.A,A.B,B.C
FROM A RIGHT OUTER JOIN B
ON A.keyId = b.keyId;
——————————————–
— 全外联结
显示左表和右表全部组合数据
SELECT A.A,A.B,B.C
FROM A FULL OUTER JOIN B
ON A.keyId = b.keyId;