A表数据(id,name)
(1,上海)
(2,北京)
 B表数据(id,Aid,name)
(1,1,杨浦区)
(2,1,黄埔区)
(3,2,崇文区)建立视图后(id,name,nodekey,parentkey)
(1,杨浦区,1,1)
(2,黄埔区,2,1)
(3,崇文区,3,2)
(4,上海,1,-1)
(5,北京,2,-1)
作为一个自连接的视图

解决方案 »

  1.   

    CREATE VIEW c AS 
    SELECT rownum id, NAME, id nodekey, parentkey
      FROM (SELECT id, NAME, aid parentkey
              FROM b
            UNION ALL
            SELECT id, NAME, -1 parentkey FROM a);
      

  2.   


    create view the_else as 
    select rownum id,name,id nodekey, aid parentkey
      from (select name, id, aid
              from b
            union all
            select name, id, -1 aid from a)
      

  3.   

    paddy兄不要多虑了 说不定楼主就这个需求呢
    哈哈
      

  4.   

    create view test as 
    select rownum id,name,id nodekey, aid parentkey
      from (select name, id, aid
              from b
            union 
            select name, id, -1 aid from a)
      

  5.   

    的确是这样的,不过很久没写SQL了忘记了,以前一直写的SQL server的,其实这个视图有3个表,之间有一定的关系,应为行的数量不同,无效数据我使用-1代替了,做这样的视图是为了程序中使用自连接显示互相的关系
      

  6.   

    有没有好点的oracle入门书推荐啊,我sql server只是中级水平,不知道与oracle有多大差别
      

  7.   

    sql21自学通
    精通oracle10g plsql 编程