首先是表A   分为,权限建,名称, 和 注册
举例                       1         增加      增加说明
                              2        删除          删除说明
                           3           查询       查询说明
表B           分为,    所属用户主键,  权限建   
举例                                 111           1
                                        111         2
                                        113         1
希望查询到的效果为                        我查询  111 这个用户  可以得到 
                                 1         增加      增加说明   111
                                2        删除          删除说明   111
                                3           查询       查询说明    null   
就是 A表的全查询,加上B表 查询的用户主键 跟在对应的权限后面。请大神指点 谢谢

解决方案 »

  1.   

    select A.*,B.所属用户主键 from A ,( select * from B where B.所属用户主键=111) B where  A.权限建=B.权限建(+) 
      

  2.   

    你这个 好像不对啊SQL 语法不对
      

  3.   

    你这个 好像不对啊SQL 语法不对这个呢:select A.*,
           B.所属用户主键 
    from A 
    left join B
           on A.权限建=B.权限建 
      

  4.   

    你这个 好像不对啊SQL 语法不对
    这个是按照你要求的数据来的,其实你应该是要左关联而已select A.*,B.所属用户主键 from A , B  where  A.权限建=B.权限建(+) 
      

  5.   

    CREATE TABLE T_A(PRI VARCHAR2(20),NAME VARCHAR2(20),REG VARCHAR2(10));
    INSERT INTO T_A(PRI,NAME,REG) VALUES('1','增加','增加说明');
    INSERT INTO T_A(PRI,NAME,REG) VALUES('2','删除','删除说明');
    INSERT INTO T_A(PRI,NAME,REG) VALUES('3','查询','查询说明');CREATE TABLE T_B(USERID VARCHAR2(20),PRI VARCHAR2(20));
    INSERT INTO T_B(USERID,PRI) VALUES('111','1');
    INSERT INTO T_B(USERID,PRI) VALUES('111','2');
    INSERT INTO T_B(USERID,PRI) VALUES('113','1');------------------------------------------------------------
    SELECT T_A.NAME,T_A.REG,T_B.USERID
    FROM T_A LEFT OUTER JOIN 
    (SELECT USERID,PRI FROM T_B WHERE USERID='111' ) T_B 
    ON T_A.PRI=T_B.PRI
    ----------------------------------------
    SELECT T_A.NAME,T_A.REG,T_B.USERID
    FROM T_A ,
    (SELECT USERID,PRI FROM T_B WHERE USERID='111' ) T_B 
    WHERE T_A.PRI=T_B.PRI(+)
    ----------------------------------------DROP TABLE T_A;
    DROP TABLE T_B;