Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接、外联接和交叉联接等,Join用于根据两个或者多个表中的列之间的关系,从这些表中查询数据。
新建两张表作为例子,表如下
SQL语句
- <span style="color:#333333;">select * from T_NumA </span>
- <span style="color:#ff0000;">inner join</span><
- span style="color:#333333;"> T_NumB </span>
- <span style="color:#ff0000;">on</span><
- span style="color:#333333;"> T_NumA .aID =T_NumB .bID </span>
结果如下
运行的结果是得到两个表之间的交集。用右边的图可以看出,Inner join符合交换律:“A inner join B”,“B inner join A”一样。
SQL语句
- <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>
- <span style="color: rgb(51, 51, 51); ">select * from T_NumA </span><span style="color:#ff0000;">right outer join</span>
- <span style="color:#333333;"> T_NumB on T_NumA .aID =T_NumB .bID
- </span>
SQL语句
- <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
- </span>
由运行结果可知:该联接产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。
本文所讲的联接语句都是将不同表的列进行纵向拼接,因为在做机房收费系统个人重构的时候,只涉及到纵向拼接表的查询,有纵向,那么肯定也有横向,横向拼接也有多种方式:Not in,Union和Intersect,这里只做简单介绍,Not in是去两个结果集的差集。Union是两个集合的并集,会自动删除重复的记录,也可以用Union All来保留所有记录行。Intersect是两个集合的交集,即同时存在于两个集合中的记录。
- <span style="color:#555555;">select * from T_NumA </span>
- <span style="color:#ff0000;">cross join</span>
- <span style="color:#555555;"> T_NumB </span>
上一篇 如何更有效地为网站布置外链
下一篇 如何注册百度联盟广告