图解sql中的inner join,full out join,left join,right join
来源:互联网 发布:sql获取seq 编辑:程序博客网 时间:2024/06/06 18:55
转载自:http://www.cnblogs.com/logon/p/3748020.html
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。
假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所示:让我们看看不同JOIN的不同
1.INNER JOIN
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name
2.FULL [OUTER] JOIN
(1)
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
4.RIGHT [OUTER] JOIN
RIGHT OUTERJOIN 是后面的表为基础,与LEFT OUTER JOIN用法类似。这里不介绍了。
5.UNION 与 UNION ALL
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。UNION 只选取记录,而UNION ALL会列出所有记录。
(1)SELECT name FROM TableA UNION SELECT name FROM TableB
选取不同值
(2)SELECT name FROM TableA UNION ALL SELECT name FROM TableB
全部列出来
(3)注意:
SELECT * FROM TableA UNION SELECT * FROM TableB
由于 id 1 Pirate 与 id 2 Pirate 并不相同,不合并
还需要注册的是我们还有一个是“交差集” cross join, 这种Join没有办法用文式图表示,因为其就是把表A和表B的数据进行一个N*M的组合,即笛卡尔积。表达式如下:SELECT * FROM TableA CROSS JOIN TableB
这个笛卡尔乘积会产生 4 x 4 = 16 条记录,一般来说,我们很少用到这个语法。但是我们得小心,如果不是使用嵌套的select语句,一般系统都会产生笛卡尔乘积然再做过滤。这是对于性能来说是非常危险的,尤其是表很大的时候。
- 图解sql中的inner join,full out join,left join,right join
- SQL中的各种JOIN(inner join,full outer join,left join,right join,cross join )
- sql的inner join/left join/right join/full join
- SQL-------left join、right join 、full join、inner join
- 图解SQL inner join、left join、right join、full outer join、union、union all的区别
- 图解SQL inner join、left join、right join、full outer join、union、union all的区别
- left join,inner join,right join,cross join,full join
- join, inner join, left join, right join, full join
- oracle join、inner join、left join、right join、full join
- Join,Inner Join,Left Join,Right Join,Full Join区别
- Join,Inner Join,Left Join,Right Join,Full Join区别
- sql中inner join ,left out join,right out join
- SQL中的join的详细用法!inner join,full outer join,left join,right jion
- SQL中的join的详细用法!inner join,full outer join,left join,right jion
- SQL中的join的详细用法!inner join,full outer join,left join,right jion
- Sql语句中的inner join ,left outer join ,right outer join ,full join 的理解
- SQL语句中的Left Join、Right join、Inner Join 、Full Join关键字
- SQL join、inner join、left join、right join、full join、cross join
- 编译CEF
- html页面获取项目路径
- 前端基础面试题大全-极乐科技(二)-HTML+CSS部分
- 修改WordPress中上传附件2M大小限制的方法
- 《Go语言入门》第一个Go语言程序——HelloWorld 标签: go语言helloworld 2015-11-29 18:46 4066人阅读 评论(4) 收藏 举报 分类: go语言入门(3)
- 图解sql中的inner join,full out join,left join,right join
- springboot【16】缓存之Redis
- 学生信息管理系统优化(三)+心得
- [NOIP提高组2002]均分纸牌
- windows 搭建 selenium + python2.7 自动化测试环境
- 安卓文件读写
- 洛谷【P2831】愤怒的小鸟 (NOIP 2016 D2T3)
- openjudge 4080 Huffman编码树(水题)
- Java9新特性