快速业务通道

深入浅出SQL教程之SELECT语句中的表连接

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-20
为了从两个或多个表中选出数据,我们一般使用表连接来实现这个功能。

  本节介绍join(连接)的概念. 为此我们准备了两个试验用表: album(专辑表) 和 track(曲目表).

  专辑表:包含200首来自Amazon的音乐CD的概要信息。

  album(asin, title, artist, price, release, label, rank)

  曲目表:每张专辑中的曲目(因为是音乐CD,所以也可叫歌曲)的详细信息。

  track(album, dsk, posn, song)

  SQL短语 FROM album JOIN track ON album.asin=track.album 表示连接album和track表。

  其中,album.asin表示专辑的惟一标识号,track.album表示曲目表中和专辑关联的专辑号。

  连接后,得到一个临时表,该临时表中每条记录包含的字段由两部分组成,

  除了专辑表中的对应字段album(title, artist ...),还包含曲目表的所有字段track(album, disk, posn and song)。

  有了这张临时表,很多查询就容易实现了。

  看看一些具体的实例,

  一、列出歌名为''Alison''的专辑名称和作者

SELECT title, artist
FROM album JOIN track
ON (album.asin=track.album)
WHERE song = ''Alison''


  显然,歌名、专辑名称和作者分别在两个表中,必需使用表连接来完成这个查询。

  二、哪个artist录制了歌曲''Exodus''

SELECT artist
FROM album JOIN track ON (asin=album)
WHERE song = ''Exodus''

  用作连接的两个字段asin,album因为在两个表中都是惟一的,所以不一定要加表名作为前缀。

  但为了方便理解,建议使用前缀,形如:album.asin=track.album

  三、列出曲目表中所有属于''Blur''专辑的歌曲

SELECT song
FROM album JOIN track ON (asin=album)
WHERE title = ''Blur''

  如果我们把 album JOIN track ON (asin=album) 看成一个临时表的话,join的概念就很好理解了。
关注此文的读者还看过:
  • 2010-4-1 18:12:45 预防非法表D99_Tmp,kill_kk的建立
  • 2008-4-23 15:53:39 SQL Server数据库超级管理员账号防护知识
  • 2008-4-11 21:37:35 SQL Server 2005数据库镜像配置脚本示例
  • 2008-4-4 9:12:54 讲解如何实现互联网上数据库的安全
  • 2008-4-1 11:07:24 SQL 2005数据库转到SQL 2000的步骤讲解
  • 2008-3-31 12:39:45 SQL Server自动生成日期加数字的序列号
  • 2008-3-31 12:39:07 SQL Server 2000的数据库容量究竟是多大
  • 2008-3-18 18:01:49 SQL Server 2005数据库的同义词Bug 讲解

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号