在ASP中使用SQL语句之12:连接

时间:2009-04-23 18:27:00 

  任何熟悉SQL和关系数据库的人都遇见过大量的连接类型。最简单的说,连接(join)会把两个表的内容组合到一个虚拟表或者recordset内。假如数据表有效地规一化,或许你会经常从某一个表中选出特定的信息再从另一个表中选出关联信息。这样做就需要简单的“同等连接(equijoin)”。

  为了了解实际的连接操作,现在让我们假设在一个数据库内存放了某类软件的相关记录。某个表(Software)包含了软件产品的名称、软件的版本以及其他有关细节:

  另一个表(Releases)则存储了软件发布历史的信息,其中包括发布日期和发布状态等(比如测试版、当前版、过时等):

  上表中还包含了一个列,内容指向软件表中采用的ID号。所以,通过这种索引软件表的方式,你就知道发布表中software_ID 等于 2的软件是Rome。

  你采用连接组合信息,这样就不需要在两个表之间来回折腾了。不过,除了组合信息之外还可以通过连接把有关信息合并。这样,只要发布表内的software_ID 匹配软件表内的ID,你就把匹配信息一起放到一个记录内。

  代码如下:
SQL = "SELECT * FROM Software, Releases WHERE software.ID = releases.softwareID"

  仔细分析以上的语句,首先注意到两个表名列在了FROM的后面。再根据所采用的连接,今后你可能还会发现语法会有所变化(或者连接类型有变),但是以上的语法是最基本的,显示了数据的联合选择方式。这里的WHERE 子句用来比较特定的ID值。在Software 表内,存在ID 列。同样的,Releases 表内则有个software_ID 列。为了明确你在WHERE 子句里要比较的值,你用表名作为前缀,后面还加上了一个点号(.)。

  以下是连接选取数据之后的结果:

  注意:在创建连接的时候要仔细考虑选出数据的列。以上代码采用 * 通配符是为了让读者关注于SELECT 代码行的其他部分。但是,正如你从上图看到的那样,你无法选出softwareID 列,因为这一列没有作为recordset部分的增加值。它的作用就是为WHERE 子句所用。

在asp中使用sql语句之11:记录统计

标签:asp,sql,连接
0
投稿

猜你喜欢

  • IE bug: 1像素的dotted/dashed边框

    2009-10-28 18:45:00
  • 使用SQL Server时最容易忽略的21个问题

    2009-01-13 13:59:00
  • html中的sub与sup标签

    2009-03-06 13:12:00
  • sqlserver中查询横表变竖表的sql语句简析

    2012-05-22 18:10:00
  • oracle下实现恢复一个丢失的数据文件的代码

    2009-03-02 11:02:00
  • 快速认识CSS中的overflow属性

    2009-05-29 16:36:00
  • 关于SQL Server数据库备份和恢复特性介绍

    2009-02-19 16:57:00
  • jQuery 横向滚动图片

    2009-03-11 13:09:00
  • Oracle 8x监控sysdba角色用户登陆情况

    2010-07-16 12:48:00
  • ASP写的不错的"数字分页"涵数

    2008-10-19 17:21:00
  • 用数据库生成不重复的流水号

    2007-10-06 22:49:00
  • ASP+FSO+框架实现ASP生成htm并分页的方法(批量)

    2009-03-09 18:26:00
  • 网站508规范(译)

    2008-04-03 13:26:00
  • javascript 45种缓动效果(二)

    2009-09-19 18:53:00
  • 在ASP中使用SQL语句之5:开始执行

    2007-08-11 12:36:00
  • 分享一些可视信息设计资源

    2009-10-06 15:19:00
  • ie6 img onload

    2009-04-08 17:23:00
  • 设计和布局之间的思考

    2008-10-09 13:06:00
  • 静态页面分页的AJAX实现

    2008-01-19 16:19:00
  • 深底色页面设计指南[译]

    2009-08-06 18:16:00
  • asp之家 网络编程 m.aspxhome.com