【SQL Server】左联接,右联接,内联接的比较

对于左联接,右联接,内联接,很多人在进行数据库表操作的时候,都是喜欢将一次性能够查询到的数据放到一个表,或者说索性查询只查一个表的信息,当然,这种习惯包括鄙人在内也常见,主要是左联接,右联接,内联接用的不熟练的话,容易让人比较头大,尤其是比较大型的查询语句,如果再加入这些,oh,my god,我想那就不只是眼花缭乱了,所以,只有把这些联接搞清楚,不管是你自己写sql语句,还有就是看别的工程师的程序的时候,都能够得心应手,希望以下的,对于读者能够有所帮助。

步骤/方法

  • 01

    首先需要解释一下这几个联接的意思:

  • 02

    left join(左联接): 返回包括左表中的所有记录和右表中联结字段相等的记录。

  • 03

    right join(右联接): 返回包括右表中的所有记录和左表中联结字段相等的记录。

  • 04

    inner join(等值连接): 只返回两个表中联结字段相等的行。

  • 05

    接下来,创建一个数据库,然后创建两张表,分别为MyTable1和MyTable2,然后向这两张表中插入一些我们要测试的数据,这里忽略建库和建表过程,望理解。

  • 06

    好了,接下来,我们来查询一下是否添加成功了:

  • 07

    我们根据上一步查询,可以看出,表1中的ID编号分别为:1,2,3,5,而表2中的ID编号分别为:1,2,3,4,也就是说,两个表中的最后一条数据是对应不上的,接下来,我们来看一下left join执行的效果,语句为: select * from MyTable1 a left join MyTable2 b on a.ID=b.ID

  • 08

    通过结果我们可以看出,left join是以表1的记录为基础,即左表的记录全部显示出来,而表2只显示符合搜索条件的记录显示出来,即右表根据条件显示,那这里的条件就是a.ID=b.ID,记录不足的会以NULL填充显示。

  • 09

    接下来,我们看一下right join执行的效果,语句为:select * from MyTable1 a right join MyTable2 b on a.ID=b.ID

  • 10

    我们会发现,right join执行的效果刚好和left join执行的效果相反,即以右表的数据为基础,显示右表全部数据,而只显示左表符合搜索条件的数据。

  • 11

    接下来,我们再看一下inner join执行的效果,语句为:select * from MyTable1 a inner join MyTable2 b on a.ID=b.ID

  • 12

    通过结果,我们可以发现,inner join不以任何数据为基础,只显示符合搜索条件的数据。

  • 13

    综合以上信息,我们就可以清楚的知道,当你需要两个或者多个表的数据的时候,你想要什么样的数据,该用什么样的联接,这对于数据操作来说,是一个很大的便利。

(0)

相关推荐

  • 【SQL】数据库表连接——左、右、内、全

    SQL连接可以分为内连接.外连接.交叉连接.   book表  : stu表 :

  • 用户sa登录SQL Server失败解决方法

    故障现象:某单位部署SQL Server 2000作为局域网服务器系统,当用户尝试在查询分析器里面以sa身份连接SQL Server或者在企业管理器里面以sa身份新建一个SQL Server注册时,经 ...

  • 在Win8/Win8.1系统下安装运行SQL Server 2005图文教程

    按正常情况,在Win8/Win8.1系统下安装微软的SQL Server 2005套件会存在兼容问题,即使安装完,最后的结果就是导致其服务项无法正常启动。 如果用户创建使用的项目非要按照SQL Ser ...

  • unity3d怎么连接sql server数据库

    虽然在Unity3D中能够通过PlayerPrefs类来保存和读取数据,但是一旦数据量增大,仅仅通过代码的方式存取数据,这样的工作量是非常大的。那么如何通过使用Sql Server数据库来存取数据呢? ...

  • SQL SERVER数据库清空日志图文教程分享

    PC6的数据库日志不停疯长,如何进行清空呢?这里以一台数据库SQL SERVER 2005为例, 日志文件达到了100多个G一直无法清理,想了很多的办法: 比如下面这款SqlServer日志清除专家, ...

  • SQL Server数据库损坏检测以及SQL Server数据库修复的解决方法

    在一个理想的世界中,不会存在任何数据库的损坏,就像我们不会将一些严重意外情况列入我们生活中的日常一样,而一旦这类事情发生,一定会对我们的生活造成非常显著的影响,在SQL Server中也同样如此,或许 ...

  • win7(windows 7)系统下安装SQL2005(SQL Server 2005)图文教程

    由于工作需要,今天要在电脑上安装SQL Server 2005。以往的项目都是使用Oracle,MS的数据库还真的没怎么用过,安装Oracle已经轻车熟路,但装SQL Server好像还有点小麻烦,所 ...

  • SQL Server中事务和并发详解

    A、Transaction(事务)是什么: 事物是SQL Server中的基本工作单元。通常它由几个读取和更新数据库的SQL命令组成,但是这些操作都不被看为最终的,直到发出一个COMMIT命令为止。 ...

  • windows mobile+webservice+sql server 2005配置方法

    要实现windows mobile上PDA等设备的远程连接数据库项目,需要使用这种大体的框架,通过设备与webservice连接传输数据,然后再webservice中连接数据库进行查询和更新。 一:首 ...