mysql中的自然联结、内联结、外联结
来源:互联网 发布:淘宝详情页源代码 编辑:程序博客网 时间:2024/05/29 15:11
1.自然联结
定义:无论何时对表进行联结,应该至少有一个列出现不止一个表中(被联结的列)。标准的联结返回所有数据,甚至相同的列多次出现。自然联结排除多次出现,使每个列只返回一次;(也就是说,自然联结的作用就是排除多次出现,使每个列只返回一次)
文字没描述完了,可能有的同学还不是很理解其中的意思,下面上例子吧,更直观:
例如有表R和表S,表的内容如下:
R表 S表 A B C D B E 1 a 3 2 c 7 2 b 6 3 d 5 3 c 7 1 a 3现在R和S要进行自然联结
自然联结步骤
1.就是用R表中的每一项乘以S表中的每一项,得到的结果如下
A B C D B E 1 a 3 2 c 7 1 a 3 3 d 5 1 a 3 1 a 3 2 b 6 2 c 7 2 b 6 3 d 5 2 b 6 1 a 3 3 c 7 2 c 7 3 c 7 3 d 5 3 c 7 1 a 32.过滤出R.B=S.B的行,结果如下
R.A R.B R.C S.D S.B S.E 1 a 3 1 a 3 3 c 7 2 c 73.最后去除一个相同的列,即R.B和S.B其中一个,最后自然联结的结果为
A B C D E 1 a 3 1 3 3 c 7 2 7
2.内联结
表数据:例如有一下两个表,表A和表B
// 表A记录如下 aID aNum 1 a2010 2 a2011 3 a2012 4 a2012 5 a2013 // 表B记录如下: bID bName 1 b2010 2 b2011 3 b2012 4 b2013 8 b2014
1)左外联结
sql语句:select*from A left join B on A.aID = B.bID,这里我们把表A成为左表,表B为右表,
左外联结是以左表为基础的,即left join是以左表为基础的,在这个例子中,左表(表A)的记录全部会显示出来,而表B只显示符合过滤条件的那部分行
2)右外联结
sql语句:select*from A right join B on A.aID = B.bID,这里我们把表A成为左表,表B为右表,
右外联结是以右表为基础的,即right join是以右表为基础的,在这个例子中,右表(表B)的记录全部会显示出来,而表A只显示符合过滤条件的那部分行
3.内联结
内联结最简单,两个表进行内联结,匹配符合过滤条件的行就可以了
例如:select * from A inner join B where A.a = B.a
把表A和表B中的列A相等的所有行都显示出来
阅读全文
0 0
- mysql中的自然联结、内联结、外联结
- Mysql 内联结与外联结
- 内联结和外联结
- mysql join 操作(内联结,外联结,)
- mysql的内联结和外联结的区别
- 内联结,外联结,全连接,交叉连接的区别
- MySQL的自然联结+外部联结(左外连接,右外连接)+内部联结
- 内联,外联,全联结,交叉联结
- mysql联结操作符
- MySQL联结表
- MySQL创建高级联结
- mysql 联结 子查询
- MySQL-联结表
- mysql表联结
- [MYSQL -15]创建联结
- MySQL创建联结
- sql中的联结查询
- MySQL的联结(Join)语法
- Java 线程
- 数据结构-基数排序(桶排序)
- Matlab画柱状图和折线图的暗黑技巧
- 资源 | 2017年最流行的15个数据科学Python库
- 关于androidstudio cmake那些事儿(二)
- mysql中的自然联结、内联结、外联结
- Linux>CentOS安装TFtp
- ImageLolder使用
- Git环境搭建与基本使用方法
- 12年经验老程序员的5次转型
- linux shell 时间运算以及时间差计算方法
- 7-6 找鞍点(二维数组的应用)
- java基础学习记录
- 引入redis代理是否一定会降低redis服务性能?