现在有两张表。
A表是员工信息表(100条记录),表名:user_info ,字段名: id , name 
B表是员工得分表(65条记录)。表名:user_score ,字段名: id ,  
只有部分员工已产生得分,而没有得分的员工,在B表中无记录。
我想将所有员工的信息(id,name)和得分()用一条语句查询出来,问题那些没得分的员工也要一并查出来,并且字段给空值,例如:001 张三 89
002 李四   
003 王五 78关键是李四的信息也要查出来。取数据的目的的是显示到web页面的表单里,领导打分时,可以给已得分的员工修改分数,也可以未得分的员工新评分。是否要用到表的连接?请各位高手指教! 谢谢!

解决方案 »

  1.   

    A表是员工信息表(100条记录),表名:user_info ,字段名: id , name  
    B表是员工得分表(65条记录)。表名:user_score ,字段名: id ,   
    select a.id,a,name,b. from a,b where a.id = b.id(+)
      

  2.   

    --左连接
    select id,name, from a left join b on (a.id=b.id);
    select id,name, from a,b where a.id=b.id(+);
      

  3.   

    select a.id,a.name,b. from user_info a,user_score b where a.id = b.id(+);左连接就可以了
      

  4.   

      用到外连接
      解决方法:(1)如楼上所说
                (2)select a.id, a.name, b. from a left join b where a.id = b.id
      

  5.   

    (2)select a.id, a.name, b. from a left join b where a.id = b.id Sorry, 上边这个语句中的where应该换成on
      

  6.   

    谢谢各位答复。只怪小弟偷懒,问题设置得过于简单。实际情况是B表应该是这样:
    B表是员工得分表(65条记录)。表名:user_score ,字段名: id,sid ,   
    其中字段“id”与A表的对应,为评分员工编号(即多个boss的编号),而sid为被评分人编号
    sql还要加一个条件,具体语句如下:
    select a.id,b. from user_info a,user_score b where a.id = b.sid(+)
    and b.id='001'
    目的是将boss(编号001)给其他员工的打分(无论有无得分)的信息都查询出来。
    但以上语句加入了 "and b.id='001'"之后,还是未将那些没有得分的员工信息查询出来。
    请问按照各位的指导用左连接,针对以上的 "and b.id='001'"该如何修改?谢谢! 
    在线验证,在线结贴。
      

  7.   


    因为你用了外连接,没有评分的员工对应的b.id为空值了,所以你的条件应该价格上nvl(b.id,'001')='001'