CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

数据库 | Oracle | DB2 | SQL Server | MySQL | 商业智能 | BI | DBA | Sybase| SQL Server 2008

您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

利用SQL的联接从多个表格中获取数据

作者: cyw,  出处:IT专家网, 责任编辑: 李书琴, 
2007-10-24 11:05
  本文主要为大家介绍使用联接语法从多个表格中获取数据的技巧……

  【IT专家网独家】第一节:联接简介

  在本文中,我们以虚构的ABC公司为实例样本。ABC公司利用一个Oracle数据库来追踪其车队及其各机构间驾驶员的动向。公司安排了某些雇员驾驶卡车,另一些雇员驾驶小汽车。首先花一点时间阅读下面的两个从公司的车辆管理数据库上下载的表格:

  表 Drivers

licensenum       
lastname  
firstname
location    
class
13232        
白    
罗兰
北京
小汽车
18431        
苏    
麦    
上海
卡车
41948        
杨    
兰    
广州
小汽车
81231
西安
小汽车

  表 Vehicles

tag   
location    
class
D824HA   
上海
卡车
H122JM   
北京
小汽车
J291QR    
广州
小汽车
L990MT   
广州
卡车
P091YF    
上海
小汽车

  我们可以用简单的SELECT语句来回答很多问题,例如:

  •   哪些驾驶员在纽约?
  •   每个城市各有多少辆小汽车?
  •   有哪些驾驶员被分配到上海开货车?
  •   在实际应用中,常常要求从多个数据表中合并数据。我们的车辆管理员可能会要求我们向他们递交以下的信息:
  •   在一个表内列出所有车辆/驾驶员配对的信息,不需要重新调用单个车辆列表或驾驶员列表
  •   被批准在上海驾驶车辆的所有驾驶员列表

  当然,用很多子查询执行复杂的SELECT语句也能够完成这些要求。不过,这里为大家提供一个更加简单的方法——内部联接和外部联接。

  第二节:内部联接(等值联接)

  内部联接(也称为等值联接)用来合并两个或更多数据表的信息。联接条件由WHERE子句来定义,以确定哪些记录是可以相匹配的。例如,我们可以建立一个驾驶员和车辆配对的列表,其中车辆和驾驶员位于同一个城市。执行以下的SQL查询可以完成这项任务:

  SELECT lastname, firstname, tag
  FROM drivers, vehicles
  WHERE drivers.location = vehicles.location

  查询返回结果如下:

  lastname firstname tag

  --------  ---------  ---

  白     罗兰  H122JM

  苏     麦   D824HA

  苏     麦   P091YF

  杨     兰   J291QR

  杨     兰   L990MT

  

共2页。 1 2 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i