Sql之表的连接总结
2013-11-14 00:33
274 查看
1、交叉连接(就是将两张表的数据 交叉组合在一起)
有两张表 客户表:[Sales.Customers] 和订单表:[Sales.Orders]。
业务需求:实现 Customer中custid(客户Id) 和 Orders表中的 Orderid的 交叉连接
实现效果:
2、内连接(使用最多的):inner join
业务要求:查询出:Order对应的 Customer中的所有客户的所有订单
注意:所有的查询结果都是全部符合 on 后面的 条件,这是和 outer join 正好相反的
3、外连接 (outer join)
和内连接最显著的 不同:就是将不满足条件的数据页查询出来了
注意一点:外连接是要分左外连接和右外连接的,左外连接意思就是outer join左边的表含有超出 on条件的内容
查看查询结果可以看出:
含有两个 orderid 为NULL的结果,就是多出来的 查询结果
通过上面的使用右外连接的使用方法 只不过要将上面的两张表的顺序 变一下
3、对外连接使用的实例,并对组函数里面NULL值的处理讲解
注意:对于组函数(例如:sum()、max()等),对于Null值是不做处理的,不算在内的
查看结果:
我们可以看到,最后两项求和的值为0.这是因为求和是根据 orderid进行分组的(这里关于分组是通过开窗函数over,后面我会讲解的),组函数COUNT()对NULL是不做处理的,所以为0.
有两张表 客户表:[Sales.Customers] 和订单表:[Sales.Orders]。
业务需求:实现 Customer中custid(客户Id) 和 Orders表中的 Orderid的 交叉连接
select c.custid,o.orderid from [Sales.Customers] as c cross join [Sales.Orders] as o
实现效果:
2、内连接(使用最多的):inner join
业务要求:查询出:Order对应的 Customer中的所有客户的所有订单
select c.custid,o.orderid from [Sales.Customers] as c inner join [Sales.Orders] as o on c.custid=o.custid
注意:所有的查询结果都是全部符合 on 后面的 条件,这是和 outer join 正好相反的
3、外连接 (outer join)
和内连接最显著的 不同:就是将不满足条件的数据页查询出来了
注意一点:外连接是要分左外连接和右外连接的,左外连接意思就是outer join左边的表含有超出 on条件的内容
select c.custid,o.orderid from [Sales.Customers] as c left outer join [Sales.Orders] as o on c.custid= o.custid
查看查询结果可以看出:
含有两个 orderid 为NULL的结果,就是多出来的 查询结果
通过上面的使用右外连接的使用方法 只不过要将上面的两张表的顺序 变一下
3、对外连接使用的实例,并对组函数里面NULL值的处理讲解
注意:对于组函数(例如:sum()、max()等),对于Null值是不做处理的,不算在内的
select c.custid,o.orderid, count(o.orderid) over (partition by c.custid) from [Sales.Customers] as c left outer join [Sales.Orders] as o on c.custid= o.custid
查看结果:
我们可以看到,最后两项求和的值为0.这是因为求和是根据 orderid进行分组的(这里关于分组是通过开窗函数over,后面我会讲解的),组函数COUNT()对NULL是不做处理的,所以为0.
相关文章推荐
- 完整的sql(连接、截取字段)总结
- JSP中连接SQL 2000数据库的问题总结
- SQL连接查询总结和练习
- SQL各种Join连接总结
- sql内外连接总结
- SQL连接学习总结
- sql 2005 "用户 sa 登录失败,该用户与可信SQL Server连接无关联 "解决方案总结
- SQL各种Join连接总结
- sql 连接查询总结
- sql各种连接总结
- SQL各种Join连接总结
- VC ado 连接Oracle\SQL SERVER\MySQL的连接字符串总结
- sql 表连接总结:
- SQL各种Join连接总结
- MySQL——查询sql总结:简单查询、连接查询、子查询
- t-sql - 多表连接总结
- sql的交叉连接,内连接,左外连接,右外连接,全外连接总结
- SQL各种Join连接总结
- PL/SQL Developer连接Oracle服务器的错误解决总结
- JSP中连接SQL 2000数据库的问题总结