使用SQL语句 INNER JOIN 联接表

时间:2008-04-27 20:31:00 

在SQL中,很多威力都来自于将几个表或查询中的信息联接起来,并将结果显示为单个逻辑记录集的能力。在这种联接中包括INNER、LEFT、RIGHT这三种JOIN操作。

首先我们来讲讲INNER JOIN 的用法:INNER JOIN 语句可以用来组合两个表中的记录,只要在公共字段之中有相符的值即可,在语法上,INNER JOIN 是这样定义的。


  举个例子:我们现在要将“图书资料表”和“出版社资料表”联接起来,然后列出出版社所出的图书。让我们先看看这两个表:

 


  然后在SQL设计视图中输入以下内容


  现在我们执行这个SQL语句:


  发现现在的查询结果将所有出版社和图书都列了出来。
  这个查询好像也可以用下面的语句来实现。


  将两个查询都切换到数据表视图后我们会发现两个查询的查询结果虽然一样,但在使用INNER JOIN操作的查询中可以添加新的数据。就像在表中添加数据一样。而没有使用INNER JOIN 操作的查询就不能添加新数据,相比之下使用INNER JOIN操作的查询更像将两个具有相关内容的表联接在一起新生成的表。

知道了它的用处,我们来看看LEFT JOIN 的结构:
FROM [表名1] LEFT JOIN [表名2] ON [表名1.字段A] 〈关系运算符〉[表名2.字段B]

其实LEFT JOIN 的功能就是将LEFT左边的表名1中的所有记录全部保留,而将右边的表名2中的字段B与表名1.字段A相对应的记录显示出来。而RIGHT JOIN 和LEFT JOIN 相反。

所以刚才的那个例子还可以写成:


  单击工具栏上的“执行”按钮,我们看到这时显示的数据表和刚才显示的用LEFT JOIN 的数据表一样。现在看出来了吧,原来它们的功能是可以互换的。

如果想将几个表联接起来,在JOIN操作中我们可以进行嵌套操作,有三个表:表1、表2、表3,现在将三个表联接起来:

FROM (表1 INNER JOIN 表2 ON 表1.序号=表2.序号)INNER JOIN 表3 ON 表1.序号=表3.序号

这样这三个表就联接起来了。

标签:表,INNER,JOIN,联接,sql
0
投稿

猜你喜欢

  • 列表模块是否需要标题

    2009-06-25 14:11:00
  • javascript 获取中文字符串长度

    2009-10-18 12:06:00
  • 设计和布局之间的思考

    2008-10-09 13:06:00
  • SQL0290N表空间状态问题:停顿的独占处理

    2008-12-26 17:24:00
  • 教你快速掌握数据库查询优化的实用技巧

    2008-11-28 15:10:00
  • 09年QQ登录Banner之转变

    2009-02-16 12:53:00
  • 网页设计的十大戒律

    2008-08-10 17:55:00
  • SQL语句 一个简单的字符串分割函数

    2011-10-24 20:06:33
  • PHP session反序列化漏洞超详细讲解

    2023-05-25 08:54:18
  • 小议sqlserver数据库主键选取策略

    2011-10-24 19:51:30
  • IE6终极备忘单——对IE6单独兼容[译]

    2010-01-21 18:34:00
  • JavaScript中的"类" 序言

    2008-02-18 13:26:00
  • 使用Javascript面向对象的思想编写ASP

    2008-06-16 12:20:00
  • SQL Server 2005 FOR XML嵌套查询使用详解

    2009-01-06 11:20:00
  • 使用BULK INSERT大批量导入数据 SQLSERVER

    2012-01-05 19:26:36
  • 关于淘宝页面编码的疑惑

    2009-12-04 12:54:00
  • 一个ASPJPEG组件的asp类 CLASS

    2008-03-11 12:22:00
  • 教你四种方法用来查看mysql版本

    2009-06-28 11:13:00
  • PHP遍历目录实现方法介绍

    2023-05-25 06:31:41
  • asp生成带日期的随机数

    2008-09-03 13:13:00
  • asp之家 网络编程 m.aspxhome.com