学习mysql中使用inner join,left join 等
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
举例如下:
--------------------------------------------
表A记录如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B记录如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
--------------------------------------------
1.left join
sql语句如下:
select * from A
left join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
(所影响的行数为 5 行)
结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL.
--------------------------------------------
2.right join
sql语句如下:
select * from A
right join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
(所影响的行数为 5 行)
结果说明:
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充.
--------------------------------------------
3.inner join
sql语句如下:
select * from A
innerjoin B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
结果说明:
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
--------------------------------------------
注:
LEFT JOIN操作用于在任何的 FROM 子句中,组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。
原文:http://www.cnblogs.com/pcjim/articles/799302.html
学习mysql中使用inner join,left join 等相关推荐
- 认真学习MySQL中的MVCC机制
什么是MVCC?MVCC(Multiversion Concurrency Control),多版本并发控制.顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制.这项技术使得在Inno ...
- 学习 MySQL中导入 导出CSV
MySQL中导出CSV格式数据的SQL语句样本如下: Sql代码 select * from test_info into outfile '/tmp/test.csv' fields termi ...
- mysql 导入导出 csv_学习 MySQL中导入 导出CSV
Sql代码 select * from test_info into outfile '/tmp/test.csv' fields terminated by ',' optionally enc ...
- 认真学习MySQL中的角色权限控制
[1] 权限管理 关于MySQL的权限简单的理解就是MySQL运行你做你权力以内的事情,不可以越界.比如只允许你执行select操作,那么你就不能执行update操作.只允许你从某台机器上连接MySQ ...
- 认真学习MySQL中的二进制日志(binlog)与中继日志(Relay log)
binlog即binary log,二进制日志文件,也叫作变更日志(update log).它记录了数据库所有执行的DDL和DML等数据库更新事件的语句,但是不包含没有修改任何数据的语句(如数据查询语 ...
- MySQL中Join算法实现原理通俗易懂
注意:MySQL 5.1.18之后的版本中才会体现出来 一:原理: 在MySQL 中,只有一种 Join 算法,就是大名鼎鼎的 Nested Loop Join,他没有其他很多数据库所提供的 Hash ...
- 中去掉外键_【Java笔记】035天,MySQL中的增删改查
学习Java的第35天. 今天天除了学习MySQL中的各种约束,MySQL中DML的操作,还有MySQL查询语句ds-- MySQLdz中d的约束有: • 非空约束(not null) • 唯一性约束 ...
- mysql 9.0创建数据库_数据库基础学习——MySQL数据库知识小结(9)
1 MySQL 中的约束 1.1约束类型 • 非空约束(not null) • 唯一性约束(unique) • 主键约束(primary key) PK • 外键约束(foreign key) FK ...
- MySQL中的外连接
MySQL中的外连接 外连接是指查询出符合连接条件的数据同时还包含孤儿数据. 一.孤儿数据 孤儿数据是指被连接的列的值为空的数据. 二.左外连接(left outer join) 左外连接包含左表的孤 ...
最新文章
- C#为什么多线程控制winform需要用委托?
- Tableau必知必会之图表显示部分标签的小妙招
- redis watch使用场景_[Redis] 常用类型及应用场景
- 简单递归题目分析与解答
- java swing 禁用鼠标事件_Java学习笔记:swing中树控件,设置树节点的图标,按钮美化,鼠标事件,禁止鼠标双击...
- php和mysql处理树状_分级_无限分类_分层数据的方法_PHP和MySQL处理树状、分级、无限分类、分层数据的方法...
- ARM系统中断产生流程
- 一加9 Pro高清渲染图曝光:后置四摄加持哈苏logo真香
- “我花了 5 年时间编写自己的操作系统!”
- linux新建java文件夹删除不了怎么办_Linux无法删除文件夹 Device or resource busy
- python基础知识(day3)
- 4.卷1(套接字联网API)---基本TCP套接字编程
- Android小提示四
- 暴风激活工具,劫持Chrome浏览器主页
- mysql启动命令 linux命令,linux下mysql 启动命令
- 计数器代码php,php 的计数器程序代码示例
- 小程序之跨平台黑魔法
- HTML5 如何让背景图片自适应浏览器大小
- 智能颈部按摩仪设计——2.开发环境搭建
- 我的世界超能物质纳米机器人_超能物质复制物品教程(附图) - [MO]超能物质 (Matter Overdrive) - MC百科|最大的Minecraft中文MOD百科...