几种连接方式

1:内连接:(典型的联接运算,使用像 =  或 <> 之类的比较运算符)。包括相等联接和自然联接。     
内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。

2、外联接。外联接可以是左向外联接、右向外联接或完整外部联接。     
在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:

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

2)RIGHT  JOIN 或 RIGHT  OUTER  JOIN     
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。       
3)FULL  JOIN 或 FULL OUTER JOIN
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。   
    
3、交叉联接   
交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。

FROM 子句中的表或视图可通过内联接或完整外部联接按任意顺序指定;但是,用左或右向外联接指定表或视图时,表或视图的顺序很重要。有关使用左或右向外联接排列表的更多信息,请参见使用外联接。

例子:

-------------------------------------------------
  a表     id   name         b表     id   job   parent_id   
              1   张3                       1     23     1   
              2   李四                     2     34     2   
              3   王武                     3     34     4       
  a.id同parent_id   存在关系

-----------------------------------------------

1) 内连接   
  select   a.*,b.*   from   a   inner   join   b     on   a.id=b.parent_id       
  结果是     
  1   张3                   1     23     1   
  2   李四                  2     34     2

2)左连接   
  select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id       
  结果是     
  1   张3                   1     23     1   
  2   李四                  2     34     2   
  3   王武                  null

3) 右连接   
  select   a.*,b.*   from   a   right   join   b     on   a.id=b.parent_id       
  结果是     
  1   张3                   1     23     1   
  2   李四                  2     34     2   
  null                       3     34     4   
    
 4) 完全连接   
  select   a.*,b.*   from   a   full   join   b     on   a.id=b.parent_id

结果是     
  1   张3                  1     23     1   
  2   李四                 2     34     2   
  null                   3     34     4   
  3   王武                 null

时间: 10-10

几种连接方式的相关文章

iSCSI存储的3种连接方式

我们分析了iSCSI存储的系统结构,下面来看iSCSI是如何与服务器.工作站等主机设备来连接的,也就是我们如何建立一个iSCSI网络存储系统. iSCSI设备的主机接口一般默认都是IP接口,可以直接与以太网络交换机和iSCSI交换机连接,形成一个存储区域网络.根据主机端HBA卡.网络交换机的不同,iSCSI设备与主机之间有三种连接方式. 第一种:以太网卡+initiator软件方式. 服务器.工作站等主机使用标准的以太网卡,通过以太网线直接与以太网交换机连接,iSCSI存储也通过以太网线连接到以

《转载》Apache HTTP Server 与 Tomcat 的三种连接方式介绍

本文转载自IBM developer 首先我们先介绍一下为什么要让 Apache 与 Tomcat 之间进行连接.事实上 Tomcat 本身已经提供了 HTTP 服务,该服务默认的端口是 8080,装好 tomcat 后通过 8080 端口可以直接使用 Tomcat 所运行的应用程序,你也可以将该端口改为 80. 既然 Tomcat 本身已经可以提供这样的服务,我们为什么还要引入 Apache 或者其他的一些专门的 HTTP 服务器呢?原因有下面几个: 1. 提升对静态文件的处理性能 2. 利用

VM的三种连接方式(转载)

概述: VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1.bridged(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器. 在桥接模式下,你需要手工为虚拟系统配置IP地址.子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信.同时,由于这个虚拟系统是局域网

Oracle 表三种连接方式(sql优化)

转自网络 1. NESTED LOOP 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择.nested loop就是扫描一个表,每读到一条记录,就依据索引去还有一个表里面查找,没有索引一般就不会是 nested loops.一般在nested loop中, 驱动表满足条件结果集不大,被驱动表的连接字段要有索引.这样就走nstedloop.假设驱动表返回记录太多,就不适合nested loops了.假设连接字段没有索引.则适合走hash join,由于不须要索引. 可用or

华为telnet的两种连接方式

要求R2能远程登陆上R1(使用password)方式 第一种方式: [R1] [R1]int e0/0/0 [R1-Ethernet0/0/0]ip address 12.1.1.1 24 [R1]user-interface vty 0 4 [R1-ui-vty0-4]authentication-mode password [R1-ui-vty0-4]set authentication password cipher 123456 [R2]int e0/0/0 [R2-Ethernet0/

ADO两种连接方式

方法一: //1.创建连接字符串,指定需要连接的服器名称及身份验证,以及用户所需要操作的数据库(因为增删改查只是针对数据表的)            //string connStr="Server=.;Uid=sa;pwd=123;Database=MySchoolMoreData";            string connStr = "Server=.;Database=MySchoolMoreData;Integrated Security=true";

在vs中连接sql的几种连接方式

sql身份验证:Data Source=.;Initial Catalog=DBName;UID=sa;Pwd=pwd windows身份验证:Data Source=.;Initial Catalog=DBName;Integrated Security=True sql身份验证:server=.;database=DBName;uid=sa;pwd=pwd; 其中,DBName是数据库名字,,,sa是sql登录名,,,pwd是登陆密码,,,只是为了给自己做个记录,因为总是记不住这个Initi

Oracle实例的3种连接方式

Oracle启动?大多人口中都说是当Oracle什么时候启动时等等 其实是错的 真正来讲 1.Oracle软件启动 2.软件去读取3份文件,然后启动数据库实例 Oracle的运行 1.软件启动 2.软件去读取3份文件 文件路径是在Oracle软件安装的根目录下的oracledata文件中 CONTROLFILE  程序控制 DATAFILE 数据文件 ONLINELOG   日志重做 软件读取完3份文件,从而数据库实例启动 Oracle公司承诺过,用本公司数据库绝对保证数据不丢失 看下图就可以明

快速理解VirtualBox的四种网络连接方式

VirtualBox中有4中网络连接方式: NAT Bridged Adapter Internal Host-only Adapter VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式. 要让自己(或别人)理解深刻,方法就是做比较和打比方,比较之间的不同和相同,拿熟知的事物打比方.先来一张图,通过这张图就很容易看出这4种方式的区别: (注:此图直接取至Finalbug的Blog,表示感谢) 再来用文字做详细的解释(其实归结起来就

VirtualBox的四种网络连接方式

VirtualBox中有4中网络连接方式:a. NAT                          网络地址转换模式(Network Address Translation)b. Bridged Adapter        桥接模式c. Internal                     内部网络模式d. Host-only Adapter     主机模式 VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式. 要让自