连接、关联、JOIN、APPLY(SQL Server)
来源:互联网 发布:淘宝匿名评价 编辑:程序博客网 时间:2024/05/21 22:49
连接方式
连接类型
个人总结
阐述(生成两个集合的约束笛卡儿积)
INNER JOIN
内连接
关联相同的(用于查找关联的信息)
FROM C AS c INNER JOIN D AS d ON c.xx = d.xx
前面的查询表达式将 ON 条件为 true 的每一个左侧集合元素与其右侧集合的配对元素组合起来。
如果未指定 ON 条件,则 INNER JOIN 退化为 CROSS JOIN。
LEFT JOIN
左连接
左面全保留(可以用来查找左面多余的,右面为NULL)
FROM C AS c LEFT OUTER JOIN D AS d ON c.xx = d.xx
前面的查询表达式将 ON 条件为 true 的每一个左侧集合元素与其右侧集合的配对元素组合起来。
如果 ON 条件为 false,表达式仍处理与右侧元素(值为 null)配对的单个左侧元素实例。
RIGHT JOIN
右连接
右面全保留(可以用来查找右面多余的,左面为NULL)
FROM C AS c RIGHT OUTER JOIN D AS d ON c.xx = d.xx
前面的查询表达式将 ON 条件为 true 的每一个右侧集合元素与其左侧集合的配对元素组合起来。
如果 ON 条件为 false,表达式仍处理与左侧元素(值为 null)配对的单个左侧元素实例。
FULL JOIN
完全连接
显示左右关联上和左右关联不上的,关联不上为NULL
FROM C AS c FULL OUTER JOIN D AS d ON c.xx = d.xx
前面的查询表达式将 ON 条件为 true 的每一个左侧集合元素与其右侧集合的配对元素组合起来。
如果 ON 条件为 false,表达式仍处理与右侧元素(值为 null)配对的一个左侧元素实例。
此外,它还处理与左侧元素(值为 null)配对的一个左侧元素实例。
CROSS JOIN
交叉连接
左右互相1对全部连接
FROM C AS c CROSS JOIN D as d
指定两个表的叉积,返回相同的行。
延伸学习
关于EXCEPT和INTERSECT的用法
EXCEPT
也是去重的, 但是它在去掉两个或多个集合中重复数据之后, 只会保留第一个结果集中的数据
查询上面有下面没有的
SELECT * FROM [dbo].[JOIN1]
EXCEPT
SELECT * FROM [dbo].[JOIN2]
INTERSECT
就是查询两个结果集的并集, 利用上面的数据
查询两个结果集中相同的
SELECT * FROM [dbo].[JOIN1]
INTERSECT
SELECT * FROM [dbo].[JOIN2]
学习地址
http://blog.csdn.net/tjvictor/article/details/5346024
物理连接
Nested Loops Join(嵌套循环连接)
Merge Join(合并连接)
Hash Join(哈希连接)
最适合于相对较小的两个数据集,inner table在做Join的字段上有一个索引输入数据集大小中等或较大,
且在Join字段上有索引帮助排序,
或者语句要求返回一个排好序的结果集输入数据集较大。
尤其适合于Data warehouse 环境下的那些复杂的查询语句并发性能够支持大量的并发用户同时运行有索引支持的Many-to-one的join并发性较好,
Many-To-Many的就差了最好同时只有少数用户在同时运行Join时要否两个字段相等不要要(除非是full outer join)要要否使用内存资源不使用不使用(如果要为Merge Join做排序,可能要使用)使用要否使用tempdb不使用many-to-many join要使用使用输入数据集要否排序不要要不要希望输入数据集排序否希望outer input是排序的是的不要学习地址http://www.cnblogs.com/CareySon/archive/2013/01/09/2853094.html
- 连接、关联、JOIN、APPLY(SQL Server)
- SQL Server join on 连接
- SQL Server连接(JOIN)介绍
- SQL Server 2005 中 Cross join & Cross Apply & Outer Apply 的区别
- MS SQL Server Join连接查询
- SQL学习(连接 join)
- SQL server Outer apply
- SQL中的连接操作(join, left join, right join)
- SQL Server中以apply运算符简化join和子查询
- Sql之left join(左关联)、right join(右关联)、inner join(自关联)的区别
- SQL left join(左关联)right join(右关联)inner join(自关联)的区别
- Sql之left join(左关联)、right join(右关联)、inner join(自关联)的区别
- Sql之left join(左关联)、right join(右关联)、inner join(自关联)的区别
- SQL Server中的三种物理连接图文解析:Loop Join,Merge Join,Hash Join
- 浅谈SQL Server中的三种物理连接操作(Nested Loop Join、Merge Join、Hash Join)
- 关联(Association)与连接(Join)
- SQL Server cross apply 和outer apply
- sql server 中的几种join连接方式
- Roman to Integer--LeetCode
- 求质数
- 【Scikit-Learn 中文文档】优化估计器的超参数
- 160多个android开源代码汇总
- Chrome,IE等浏览器主页被hao123等篡改的解决方法
- 连接、关联、JOIN、APPLY(SQL Server)
- python openpyxl 操作 excel
- YII2.0 表单组件的使用方法
- log 日志查看
- 【Scikit-Learn 中文文档】模型评估: 量化预测的质量
- Hive编程(三)【数据类型和文件格式】
- 25个经典的spring面试题----转载
- Java | 标签
- vue 常用ui组件库