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


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如何防止SQL注入
May 03 面试题
经典c++面试题二
Aug 14 面试题
SQL数据库笔试题
Mar 08 面试题
私有程序集与共享程序集有什么区别
Apr 05 面试题
盛大二次面试题
Nov 18 面试题
this关键字的含义
Apr 08 面试题
params有什么用
Mar 01 面试题
C#里面可以避免一个类被其他类继承么?如何?
Sep 26 面试题
Linux面试经常问的文件系统操作命令
Nov 05 面试题
正隆泰信息技术有限公司上机题
Jun 14 面试题
深圳茁壮笔试题
May 28 面试题
金鑫耀Java笔试题
Sep 06 面试题
如何用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获取当前完整URL地址的函数
2014/12/21 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
jcrop基本参数一览
2013/07/16 Javascript
jquery网页元素拖拽插件效果及实现
2013/08/05 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
浅析Angular19 自定义表单控件
2018/01/31 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
python和shell变量互相传递的几种方法
2013/11/20 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
解决jupyter notebook显示不全出现框框或者乱码问题
2020/04/09 Python
python中return如何写
2020/06/18 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
python re模块常见用法例举
2021/03/01 Python
护理专业的自荐信
2013/10/22 职场文书
农村婚礼证婚词
2014/01/10 职场文书
最常使用的求职信
2014/05/25 职场文书
鲁迅故居导游词
2015/02/05 职场文书
幼儿园安全管理制度
2015/08/05 职场文书
中学团支部工作总结
2015/08/13 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书