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


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...

面试题 相关文章推荐
AOP的定义以及作用
Sep 08 面试题
static关键字的用法
Oct 07 面试题
华为的Java面试题
Mar 07 面试题
C有"按引用传递"吗
Sep 06 面试题
C++的几个面试题附答案
Aug 03 面试题
作为网站管理者应当如何防范XSS
Aug 16 面试题
C# .NET面试题
Nov 28 面试题
抽象类和接口的区别
Sep 19 面试题
介绍一下Java中的static关键字
May 12 面试题
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
Mar 16 面试题
Java servlet面试题
Mar 04 面试题
Servlet面试题库
Jul 18 面试题
如何用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代码优化及php相关问题总结
2006/10/09 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
Three.js基础学习教程
2017/11/16 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
2019/02/11 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
详解Django中Request对象的相关用法
2015/07/17 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
手机配件第一品牌:ZAGG
2017/05/28 全球购物
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
普师专业个人自荐信范文
2013/11/26 职场文书
员工趣味活动方案
2014/08/27 职场文书
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电