微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

了解SQL中的JOIN

    在机房收费系统个人重构的时候,很多的功能都需要根据数据库中的一个表中的信息,去查询一个表中相匹配的信息,我们用到了视图,但是你有没有注意到下面的sql语句呢?(SELECT...FROM...JOIN...ON...),接下来我们就一起来了解sql中的JOIN.


1、什么是JOIN?

   Join是关系型数据库系统的重要操作之一,sql Server中包含的常用Join:内联接、外联接和交叉联接等,Join用于根据两个或者多个表中的列之间的关系,从这些表中查询数据。

2、怎么使用JOIN?

 新建两张表作为例子,表如下

INNER JOIN

  sql语句
 

  1.     <span style=color:#333333;>select * from T_NumA </span> 
  2. <span style=color:#ff0000;>inner join</span>< 
  3. span style=color:#333333;> T_NumB </span> 
  4. <span style=color:#ff0000;>on</span>< 
  5. span style=color:#333333;> T_NumA .aID =T_NumB .bID </span>   

结果如下


运行的结果是得到两个表之间的交集。用右边的图可以看出,Inner join符合交换律:“A inner join B”,“B inner join A”一样。

 

 ●OUTER JOIN

 1)、LEFT(OUTER)JOIN和RIGHT(OUTER)JOIn

   sql语句  
 

  1. <span style=color:#333333;>select * from T_NumA </span><span style=color:#ff0000;>left outer join</span><span style=color:#333333;> T_NumB on T_NumA .aID =T_NumB .bID </span>  
  1. <span style=color: rgb(51, 51, 51); >select * from T_NumA </span><span style=color:#ff0000;>right outer join</span> 
  2. <span style=color:#333333;> T_NumB on T_NumA .aID =T_NumB .bID    
  3. </span>  

 

2)、FULL(OUTER)JOIN

  sql语句
 

  1. <span style=color:#555555;>select * from T_NumA </span><span style=color:#ff0000;>full outer join</span><span style=color:#555555;> T_NumB on T_NumA .aID =T_NumB .bID    
  2. </span>   

由运行结果可知:该联接产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。
 

  1. <span style=color:#555555;>select * from T_NumA </span> 
  2. <span style=color:#ff0000;>cross join</span> 
  3. <span style=color:#555555;> T_NumB </span>
本文所讲的联接语句都是将不同表的列进行纵向拼接,因为在做机房收费系统个人重构的时候,只涉及到纵向拼接表的查询,有纵向,那么肯定也有横向,横向拼接也有多种方式:Not in,Union和Intersect,这里只做简单介绍,Not in是去两个结果集的差集。Union是两个集合的并集,会自动删除重复的记录,也可以用Union All来保留所有记录行。Intersect是两个集合的交集,即同时存在于两个集合中的记录。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐