1. 右连接(right join, right outer join)
解释:以右表(Sys_Employee)为准,而左表(Sys_Department)中的记录只有当其DepartmentId在右表中存在时才会查询出来;
 
 
2. 左连接(left join, left outer join)
解释:以左表(Sys_Department)为准,而右表(Sys_Employee)中的记录只有当其DepartmentId在左表中存在时才会查询出来;
 
 
3. 全连接(full join, full outer join)
解释:两个表中DepartmentId的并集(U)记录;
 
 
4. 内连接(join, inner join)
解释:两个表中DepartmentId的交集(n)记录;
 
 
5. 交叉连接(cross join,完全连接)
解释:没有WHERE子句的交叉连接,它返回被连接的两个表所有数据行的笛卡尔积,返回结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
 
 
6. 自连接(self join)
解释:使用自连接可以将自身表的一个镜像当作另一个表来对待;
使用自连接的情况:当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自连接(自连接的本意就是将一张表看成多张表来做连接)。
 
例如:
数据库中有如下一个部门结构表
 
 
下面我们需要将每一个部门自己的名称和上级部门的名称都找出来。
 
如果有两张表,一个部门表,一个上级部门表,那很好写SQL语句;
但现在部门和上级部门都在一张表中,这种情况用自连接就比较好。
 
SQL语句及查询结果如下:
 
 
这里我们注意到研发部没有出现在部门列表中,是因为在这里研发部是最上级部门,它没有上级部门。如果这时候我们希望研发部也出现在左侧,即使它没有上级部门。
我们可以结合左连接
SQL语句及查询结果如下:
 

Mysql join语句解析的更多相关文章

  1. mysql join语句的执行流程是怎么样的

    mysql join语句的执行流程是怎么样的 join语句是使用十分频繁的sql语句,同样结果的join语句,写法不同会有非常大的性能差距. select * from t1 straight_joi ...

  2. Mysql Join语法解析与性能分析详解

    一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditiona table1 ...

  3. Mysql join语句的优化

    Mysql4.1开始支持SQL的子查询.这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中.使用子查询可以一次性的完成很多逻辑上需要多个步骤才能完成的 ...

  4. (转)MySQL join语法解析与性能分析

    文章转载的:http://www.cnblogs.com/BeginMan/p/3754322.html 一.join语法概述 join用于多表中字段之间的联系,语法如下: ... FROM tabl ...

  5. [转]Mysql Join语法解析与性能分析

    转自:http://www.cnblogs.com/BeginMan/p/3754322.html 一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM table1 ...

  6. MySQL插入语句解析

    1.INSERT INTO 最常用简单的插入语句,可以有以下两种用法 1>  INSERT INTO tb_user(id, name, age) VALUES (100022, 'Tom', ...

  7. mysql select语句解析

    select语句用于从一个或多个数据表选出特定行.特定列的交集 最简单的select语句的语法格式如下: select column1,column2 ........      (列) from 数 ...

  8. MySQL查询语句执行过程及性能优化(JOIN/ORDER BY)-图

    http://blog.csdn.net/iefreer/article/details/12622097 MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY) 标签 ...

  9. MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)

    在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:

随机推荐

  1. 【HOJ2430】【贪心+树状数组】 Counting the algorithms

    As most of the ACMers, wy's next target is algorithms, too. wy is clever, so he can learn most of th ...

  2. php基础知识【函数】(5)正则preg

    一.匹配次数 (1) * 匹配前面的子表达式零次或多次 (2) + 匹配前面的子表达式一次或多次,+ 等价于 {1,} (3) ? 匹配前面的子表达式零次或一次,? 等价于 {0,1} (4){n} ...

  3. 用Web Picasa API搭建站内相册

    在flickr时代,为了专门把站内嵌入相册,还专门写了一篇文章把Flickr相册搬回家.flickr被墙之后,我就把个人相册转到了Web Picasa上.用Picasa Web就简单多了,官方提供了S ...

  4. python 装饰器、生成器、迭代器

    # 装饰器'''由高阶函数(把一个函数名当作实参传递给另一个函数,返回值中包含函数名)和嵌套函数(函数中嵌套函数)组成功能:在不更改原函数的代码和调用方式的前提下添加新的功能装饰器本身就是一个函数.使 ...

  5. 抽象数据类型Triplet的C语言实现

    #include <stdio.h> #include <stdlib.h> #define ERROR 0 #define OK 1 typedef int Status; ...

  6. centos挂存储

    #看硬盘有木 fdisk -l   #格式化 parted /dev/sdb mklabel gpt print quit #如果多个分区执行 如果不要么 #mkpart primary 0 4.5T ...

  7. linux中ls、ls -l、ls -al、ll命令

    ls只是简单的列出目录下文件名,ll更加详细的列出了文件的类型.文件所有者权限.文件所有者组权限.文件大小.文件最后修改时间,etc... 我们可以用一个简单的图来说明,如下图1: 图1 1.第一位就 ...

  8. linux 消息队列的限制

    消息队列的系统限制 作者:冯老师,华清远见嵌入式学院讲师. 消息队列是System V的IPC对象的一种,用于进程间通信,会受到系统的限制,本文主要描述了三个限制.第一:议个消息的最大长度:第二:消息 ...

  9. java 和javaw 的区别——<转>

    java 和javaw 的区别 javaw.exe用法和java.exe 相同 javaw的程序不在java console 上面显示任何东西,如果在开发程序,就用java,这样可以看到错误提示, 如 ...

  10. AltiumDesigner导入AutoCAD文件DXF,DWG格式

    最近有个朋友给了个AutoCAD的文件,需要我画个板子,结构什么的参见AutoCAD的文件,百度了下,得知protel是可以导入AutoCAD的DXF,DWG格式的文件的,那么AltiumDesign ...