自然左右外联接的区别

原创 2008年11月04日 20:22:00

在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定:

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

RIGHT JOIN 或 RIGHT OUTER JOIN。
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

FULL JOIN 或 FULL OUTER JOIN。
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM 子句中提到的至少一个表或视图的所有行,只要这些行符合任何 WHERE 或 HAVING 搜索条件。将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。

 

现在假设有学生表,学生课程分数表

 

完整文字 c_id s_id subject acc
编辑 删除 1 1 语文 98
编辑 删除 2 1 数学 90
编辑 删除 3 2 英语 2

 

完整文字 ids name gender
编辑 删除 1 小明
编辑 删除 2 小华
编辑 删除 3 小兰
编辑 删除 4 小军

 

SELECT *
FROM acc
LEFT JOIN student ON s_id = ids
LIMIT 0 , 30
 
执行结果:
 
c_id s_id subject acc ids name gender
1 1 语文 98 1 小明
2 1 数学 90 1 小明
3 2 英语 2 2 小华

 

 

SELECT *
FROM acc
RIGHT JOIN student ON s_id = ids
LIMIT 0 , 30
 
结果
 
c_id s_id subject acc ids name gender
1 1 语文 98 1 小明
2 1 数学 90 1 小明
3 2 英语 2 2 小华
NULL NULL NULL NULL 3 小兰
NULL NULL NULL NULL 4 小军
 
 
得出以下结论: 所谓左表也就是你from的表,右表就是你join的表
leftjion 的意思就是以左表的纪录为准,反之rightjoin
还想说说啥时候用,也就是说,俩个表的数据不对称的时候用,
可能基础了点,但是越基础越重要么
版权声明:本文为博主原创文章,未经博主允许不得转载。

mysql 表中的自然连接,外连接,左外连接,右外连接

在mysql 中进行连接操作。 建立多个对应的表: //进行连接查询时如果某个属性值在两个表中都出现的话,怎应该在前面加具体表名。 、、进行自然连接  select student.sno,snam...
  • QH_JAVA
  • QH_JAVA
  • 2013年10月27日 21:29
  • 4672

MySQL的自然联结+外部联结(左外连接,右外连接)+内部联结

【0】README 0.1)本文旨在review 数据库的自然联结,外部联结(左外连接,右外连接),内部联结的知识; 【1】自然联结 1)自然联结定义:无论何时对表进行联结,应该至少有一个列出现不...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2016年05月13日 17:00
  • 3498

【技术篇】SQL的四种连接-左外连接、右外连接、内连接、全连接

今天在看一个遗留系统的数据表的时候发现平时查找的视图是FULL OUT JOIN的,导致平时的数据记录要进行一些限制性处理,其实也可以设置视图各表为右外连接并在视图上设置各列的排序和筛选条件就可以达到...
  • u013517797
  • u013517797
  • 2015年09月19日 14:42
  • 1732

内连接、左连接、左外连接、右连接的区别

一:测试例子 存在如下两张表:年级与班级,表内容如下 班级表   二:内连接与自然连接 1:自然连接 对于select * from gradeclass gc where gc....
  • jackyxwr
  • jackyxwr
  • 2013年12月13日 18:57
  • 4478

sql ,内连接,外连接,自然连接等各种连接

1、内联接(典型的联接运算,使用像 = 或 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。 2、外联接...
  • u010509774
  • u010509774
  • 2016年01月18日 09:42
  • 2013

Mysql之自然连接

两张表: 自然连接 通过MySql自己的判断完成连接过程,不需要指定连接条件。MySql会使用表内的,相同的字段,作为连接条件。 自然连接分为内外之分。 内:natural join ...
  • JCY1009015337
  • JCY1009015337
  • 2016年11月03日 20:49
  • 3609

SQL内链接,外连接,交叉连接,联合连接区别详解

一、准备工作:创建数据表并填写信息 class表: student表: 二、详解1、内链接INNER JOIN 用于取得两个表中存在连接匹配关系的记录(例如:某一列相等)。通常配合比较运算符...
  • calm_thinker
  • calm_thinker
  • 2017年03月16日 17:53
  • 780

内联结,外联结,全连接,交叉连接的区别

连接分为:内连接、外连接、交叉连接  一、内连接——最常用  定义:仅将两个表中满足连接条件的行组合起来作为结果集。  在内连接中,只有在两个表中匹配的行才能在结果集中出现  关键词:INNER JO...
  • qizhiqq
  • qizhiqq
  • 2016年07月18日 12:29
  • 817

Oracle内连接、左外连接、右外连接、全外连接

表TESTA,TESTB,TESTC,各有A, B两列 A B 001 10A 002 20A A B 001 10B 00...
  • futdktyx
  • futdktyx
  • 2013年12月06日 13:46
  • 1598

数据库的内联接、外联接

数据库的内联接、外联接 转载网址:http://www.cnblogs.com/younes/archive/2010/07/12/1776046.html 现在有两个表:customers和ord...
  • u011672579
  • u011672579
  • 2016年06月13日 04:26
  • 6278
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自然左右外联接的区别
举报原因:
原因补充:

(最多只允许输入30个字)