sql基础知识left join,right join,inner join区别
1.left join即以左表为主查出左边表对应的所有数据
<pre name="code" class="sql">select * from A left join B on A.id = B.pid
2.right join以右表为主查出右边表对应的所有数据
select * from A right join B on A.rid=B.lid
3.inner 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 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。
语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2
说明:table1, table2参数用于指定要将记录组合的表的名称。
field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。
compopr参数指定关系比较运算符:"=", "<", ">", "<=", ">=" 或 "<>"。
如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误.
sql基础知识left join,right join,inner join区别相关推荐
- SQL基础知识(二)
SQL基础知识(二) 目录: 查找所有员工自入职以来的薪水涨幅情况 统计各个部门对应员工涨幅的次数总和 对所有员工的当前薪水按照salary进行按照1-N的排名 获取所有非manager员工当前的薪水 ...
- 大数据系列sql基础知识(史上最全,收藏起来)
大数据系列文章,从技术能力.业务基础.分析思维三大板块来呈现,你将收获: 1. 提升自信心,自如应对面试,顺利拿到实习岗位或offer: 2.掌握大数据的基础知识,与其他同事沟通无障碍: 3. 具备一 ...
- 数据库基础与SQL基础知识看这篇就够了!
一.数据库简介 1. DBMS(DataBaseManagement System,数据库管理系统)和数据库数据库Schema有两种含义,一种是概念上的Schema,指的是一组DDL语句集,该语句集完 ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- 原创《SQL基础知识第2版》PDF高清版,限时下载!
内容简介 <SQL基础知识第2版>是一本为新手同学特地准备的入门文档,由公众号[SQL数据库开发]原创出品. 内容涵盖了SQL基础语法的所有内容,不仅有SQL各个语法的解释,而且还附有大量 ...
- mysql 算子 谓词_[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式
SQL 基础知识梳理(六)- 函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为"参数",输出值称 ...
- Oracle PL/SQL基础知识
Oracle PL/SQL基础知识 过程(存储过程) 过程用于执行特定的操作,当建立过程时,既可以指定输入参数(in),也可以指定输出参数(out).通过在过程中使用输入参数,可以将数据传递到执行部分 ...
- 《SQL基础知识第2版》PDF高清版,限时下载!
内容简介 <SQL基础知识第2版>是一本为新手同学特地准备的入门文档,由公众号[SQL数据库开发]原创出品. 内容涵盖了SQL基础语法的所有内容,不仅有SQL各个语法的解释,而且还附有大量 ...
- 小白入门SQL基础知识汇总
小白入门SQL基础知识汇总 课程链接:link
- 第1章 数据库系统与SQL基础知识!什么是SQL数据库系统?SQL类型?
第1章 数据库系统与SQL基础知识 1.1 数据库系统基本概念 数据库和SQL构成了整个数据库系统,两者一个是用来存储数据,一个是用来读取数据.本节通过简单的概念入手,让读者对数据库系统有个大概的 ...
最新文章
- 2017年全球光伏需求有望首次突破100吉瓦
- python流程控制-详解Python流程控制语句
- IE8 chrome 中 table隔行换色解决办法
- 交通流元胞自动机模拟仿真 matlab源码_元胞自动机中的时间反演
- yarn报错:error An unexpected error occurred: “https://registry.yarnpkg.com/-/user/org.couchdb。。。
- Myeclipse修改设置Default VM Arguments
- 单片机STM8S测量电压电路_单片机设计的胶带输送机智能模糊检测系统,准确性高,胶带寿命长...
- 无法完成您的itunes store的请求_iTunes 谢幕,盘点它的这 18 年
- 助力移动AR应用发展,阿里巴巴推出AR开放平台
- puttygen convert ppk file to xshell key file
- 计算机组成原理课程设计(附完整项目)
- 百度地图行政区划遮罩+描点+信息窗demo
- 威纶通触摸屏与仪表通讯_详解通信威纶通触摸屏与英威腾变频器的使用
- windows域用户切换本地用户
- (三十一)树莓派3B+获取ADS1115 ADC转换的数据
- (华为社招岗位,部门---上海海思,GTS,海思,2012,华为云):北京北京北京!
- 苹果手机免越狱群控无需硬件即插即用高清投屏控制操作
- 斜度线在CAD中你是怎么画的?
- Linux之nc命令详解
- 最最喜欢的韩庚……这个资料-----顶了~/(≧▽≦)/~!!!