oracle9i中,有三张表:A、B、C
表A 字段和记录:id、name_code、sex_code
               1,    0,        0
               1,    2,        1
               2,    0,        1
               2,    1,        0
表B字段和记录:name_code、name_desc(中文)
                 0,         张三
                    1,        李四
                    2,        王五
表C字段和记录:sex_code、 sex_desc
                 0,        男
                   1,         女现在我想查询表A,指定查询条件(id=1),结果集类似这样: 
                1,张三,男
                1,王五,女也就是查询时根据表B、c的明细替换A中的数字,并返回指定id=1的结果集请问sql怎么写呢?
                
 

解决方案 »

  1.   


    select id,name_desc,sex_desc
    from A,B,C
    where id = 1 and A.name_code = B.name_code and A.sex_code = B.sex_code
      

  2.   

    select a.id,b.name_desc,c.sex_desc
    from A left outer join 
    B
    on A.name_code = B.name_code 
    left outer join  C
    on a.sex_code = c.sex_code
    where id = 1 如果还是不行的话,那就是因为建表脚本里面的数据类型不一致导致的,你检查一下建表脚本
      

  3.   

    select A.id,B.name_desc,C.sex_desc
    from A,B,C
    where A.name_code = B.name_code(+) and A.sex_code = C.sex_code(+) and A.id = 1 
      

  4.   

    你是不是使用developer工具之类的查询的?
    如果是,而你又在进入工具时选择的sysdba登陆的话:
    1,在a,b,c三张表前加限定名
    2,进入时使用normal身份。