IT技术江湖   操作系统   安全技术   平面设计   Web开发   数据库   互联网   搜索引擎   网络广告   
引擎技术江湖  BLOG  合作联系
本站
Google
IT技术江湖
首页>数据库>SQL语言> 深入浅出SQL教程之SELECT语句的自连接
  • IT技术江湖
  • 深入浅出SQL教程之SELECT语句的自连接
    http://www.hack1st.com 来源: 2008-04-09 阅读: 评论

      到目前为止,我们连接的都是两张不同的表,那么能不能对一张表进行自我连接呢?答案是肯定的。

      有没有必要对一张表进行自我连接呢?答案也是肯定的。

      表的别名:

      一张表可以自我连接。进行自连接时我们需要一个机制来区分一个表的两个实例。

      在FROM clause(子句)中我们可以给这个表取不同的别名, 然后在语句的其它需要使用到该别名的地方用dot(点)来连接该别名和字段名。

      我们在这里同样给出两个表来对自连接进行解释。

      爱丁堡公交线路,

      车站表:

      stops(id, name)

      公交线路表:

      route(num, company, pos, stop)

      一、对公交线路表route进行自连接。

    SELECT * FROM route R1, route R2 WHERE R1.num=R2.num AND R1.company=R2.company
      我们route表用字段(num, company)来进行自连接. 结果是什么意思呢?

      你可以知道每条公交线路的任意两个可联通的车站。

      二、用stop字段来对route(公交线路表)进行自连接。

    SELECT * FROM route R1, route R2 WHERE R1.stop=R2.stop;
      查询的结果就是共用同一车站的所有公交线。这个结果对换乘是不是很有意义呢。

      从这两个例子我们可以看出,自连接的语法结构很简单,但语意结果往往不是那么容易理解。就我们这里所列出的两个表,如果运用得当,能解决很多实际问题,例如,任意两个站点之间如何换乘。

    SELECT R1.company, R1.num FROM route R1, route R2, stops S1, stops S2
    WHERE R1.num=R2.num AND R1.company=R2.company AND R1.stop=S1.id AND R2.stop=S2.id
    AND S1.name='Craiglockhart' AND S2.name='Tollcross'

    上一篇:用TSQL求子串在父串中出现的次数  
    下一篇:没有了

    ·网友互动--用户名: (新注册) 密码: 匿名评论 [所有评论]
    评论内容:(用户发表意见仅代表其个人意见,评论内容与本站立场无关,请自觉遵守互联网相关政策法规)
    关注此文读者还看过
    • ·深入浅出SQL教程之SELECT语句的自连接
      ·用TSQL求子串在父串中出现的次数
      ·Sql语句密码验证安全漏洞
      ·深入浅出SQL系列教程之SQL语言简介
      ·SQL语句性能调整原则
      ·SQL中使用WITH AS提高性能
      ·SQL语法参考手册
      ·T-SQL脚本:计算表的宽度
      ·用SQL语句修改表字段为主键
      ·在其他的编程接口中应当如何使用游标
    最新更新
    • ·深入浅出SQL教程之SELECT语句的自连接
      ·用TSQL求子串在父串中出现的次数
      ·Sql语句密码验证安全漏洞
      ·深入浅出SQL系列教程之SQL语言简介
      ·SQL语句性能调整原则
      ·SQL中使用WITH AS提高性能
      ·SQL语法参考手册
      ·T-SQL脚本:计算表的宽度
      ·用SQL语句修改表字段为主键
      ·在其他的编程接口中应当如何使用游标
    文章关注度排行
    ·深入浅出SQL系列教程之SQL语言简介
    ·SQL语句性能调整原则
    ·Sql语句密码验证安全漏洞
    ·用SQL语句修改表字段为主键
    ·SQL语法参考手册
    ·用TSQL求子串在父串中出现的次数
    ·深入浅出SQL教程之SELECT语句的自连接
    ·SQL中使用WITH AS提高性能
    热点推荐
    SQL语法参考手册
    SQL语法参考手册
    频道推荐
    • ·用SQL语句修改表字段为主键
    • ·SQL语法参考手册
    • ·SQL中使用WITH AS提高性能
    本站精华
    SQL语法参考手册
    SQL语法参考
    • ·SQL中使用WITH AS提高性能
    • ·SQL语法参考手册
    • ·用SQL语句修改表字段为主键
    • | 网站导航 | 联系QQ | 编辑邮箱 | RSS订阅 | 友情链接 | 官方blog
    • 版权所有:IT技术江湖 @2007-2008
    • powered by www.hack1st.com online services. all rights reserved.京ICP备07005766号