快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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

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

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


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


上表中还包含了一个列,内容指向软件表中采用的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 子句里要比较的值,你用表名作为前缀,后面还加上了一个点号(.)。

以下是连接选取数据之后的结果:[image006.gif]


注重:在创建连接的时候要仔细考虑选出数据的列。以上代码采用 * 通配符是为了让读者关注于SELECT 代码行的其他部分。但是,正如你从上图看到的那样,你无法选出softwareID 列,因为这一列没有作为recordset部分的增加值。它的作用就是为WHERE 子句所用。
返回类别: 教程
上一教程: 一个用C#写的扫描ASP源码漏洞的应用程序
下一教程: ASP提供在线文章翻译的功能

您可以阅读与"在ASP中使用SQL语句之12:连接"相关的教程:
· 在ASP中使用SQL语句之2:用WHERE子句设置查询条件
· 在ASP中使用SQL语句之6:存储查询
· 在ASP中使用SQL语句之1:SELECT 语句
· 在ASP中使用SQL语句之8:随机数
· 在ASP中使用SQL语句之7:ORDER BY
    微笑服务 优质保证 索取样品