介绍一下内联、左联、右联


Posted in 面试题 onDecember 31, 2013
一.先看一些最简单的例子

例子

Table A
aid adate
1 a1
2 a2
3 a3

TableB

bid bdate
1 b1
2 b2
4 b4
两个表a,b相连接,要取出id相同的字段
select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据.
此时的取出的是:
1 a1 b1
2 a2 b2

那么left join 指:
select * from a left join b on a.aid = b.bid
首先取出a表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
3 a3 空字符

同样的也有right join
指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据
此时的取出的是:
1 a1 b1
2 a2 b2
4 空字符 b4

LEFT JOIN 或 LEFT OUTER JOIN。
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值

二. 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 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。

语法:
FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2

说明:
① table1, table2参数用于指定要将记录组合的表的名称。
② field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。
③ compopr参数指定关系比较运算符:”=”, ““, “=” 或 ““。
④ 如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误。

Tags in this post...

面试题 相关文章推荐
PHP如何删除一个Cookie值
Nov 15 面试题
如何启动时不需输入用户名与密码
May 09 面试题
求高于平均分的学生学号及成绩
Sep 01 面试题
以下的初始化有什么区别
Dec 16 面试题
"引用"与多态的关系
Feb 01 面试题
阿里巴巴Oracle DBA笔试题答案-备份恢复类
Nov 20 面试题
北京某公司的.net笔试题
Mar 20 面试题
杭州龙健科技笔试题.net部分笔试题
Jan 24 面试题
用C#语言写出在本地创建一个UDP接收端口的具体过程
Feb 22 面试题
系统管理员的职责包括那些?管理的对象是什么?
Jan 18 面试题
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
Oct 17 面试题
Delphi工程师笔试题
Sep 21 面试题
如何用SQL语句进行模糊查找
Sep 25 #面试题
存储过程的优缺点是什么
Jan 10 #面试题
DBA数据库管理员JAVA程序员架构师必看
Feb 07 #面试题
介绍一下SQL Server里面的索引视图
Jul 31 #面试题
一组SQL面试题
Feb 15 #面试题
SQL Server里面什么样的视图才能创建索引
Apr 17 #面试题
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
Apr 28 #面试题
You might like
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
Firefox div高度自适应
2009/04/28 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
node.js使用nodemailer发送邮件实例
2014/03/10 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
django 使用 request 获取浏览器发送的参数示例代码
2018/06/11 Python
Python中反射和描述器总结
2018/09/23 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
Python玩转PDF的各种骚操作
2019/05/06 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
如何基于Python创建目录文件夹
2019/12/31 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
Senreve官网:美国旧金山的奢侈手袋品牌
2019/03/21 全球购物
大学生创业计划书的格式要求
2013/12/29 职场文书
七年级数学教学反思
2014/01/22 职场文书
社区工作感言
2014/02/21 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
MySQL优化及索引解析
2022/03/17 MySQL