zoukankan      html  css  js  c++  java
  • SQL 自连接

       SQL 自连接

         自连接的本质还是两个表的连接(内存里面只存了一份,另外一份是这个的引用),从看执行计划可以看出。就是对同一行数据,可以反应层次关系的,大部分时候都是有父子关系的。

         简单例子如下,你要看哪个经理管着谁,就用这种做法。

    CREATE TABLE Emp(
      empid INT PRIMARY KEY,
      name VARBINARY(50),
      mgrid INT 
    )
    
    ALTER TABLE dbo.Emp
    ALTER COLUMN name VARCHAR(50)
    
    Insert into Emp(empid,name,mgrid)
    
    values (1001,'zhangzhen',1001); 
    Insert into Emp(empid,name,mgrid)values (1002,'Deepti',1001);
    
    Insert into Emp(empid,name,mgrid)values (1003,'Amit',1001);
    
    Insert into Emp(empid,name,mgrid)values (1004,'Sandy',1002);
    
    Insert into Emp(empid,name,mgrid)values (1005,'Ankit',1003);
    
    Insert into Emp(empid,name,mgrid)values (1006,'Kapil',1002);

        经典例子:公交站点和线路

    ----------R1:s1->s2->s3->s4->s5
    ----------R2:s6->s7->s2->s8
    ----------R3:s8->s9->s10

    按照上面的关系,插入到表中。

      

     --查询直达线路数据(不用换乘)
    CREATE
    PROC QueryTo(@startStop VARCHAR(32),@endStop VARCHAR(32)) AS BEGIN SELECT a.Stop AS 起始站点 , b.Stop AS 目的站点 , a.Route AS 乘坐线路 , b.Postion - a.Postion AS 经过站点数 FROM dbo.Stop_Route a , dbo.Stop_Route b WHERE a.Route = b.Route AND a.Postion < b.Postion AND a.Stop =@startStop AND b.Stop =@endStop END
  • 相关阅读:
    Go语言通道(chan)——goroutine之间通信的管道
    GO语言数组,切片,MAP总结
    GO数组
    GO切片
    GO语言测试
    GO语言html模板
    Go语言中defer语句使用小结
    微信小程序 某个页面直接返回首页
    小程序常用变量
    bzoj1030
  • 原文地址:https://www.cnblogs.com/gdouzz/p/8249710.html
Copyright © 2011-2022 走看看