现在有两张表。
A表是员工信息表(100条记录),表名:user_info ,字段名: id , name
B表是员工得分表(65条记录)。表名:user_score ,字段名: id ,
只有部分员工已产生得分,而没有得分的员工,在B表中无记录。
我想将所有员工的信息(id,name)和得分()用一条语句查询出来,问题那些没得分的员工也要一并查出来,并且字段给空值,例如:001 张三 89
002 李四
003 王五 78关键是李四的信息也要查出来。取数据的目的的是显示到web页面的表单里,领导打分时,可以给已得分的员工修改分数,也可以未得分的员工新评分。是否要用到表的连接?请各位高手指教! 谢谢!
A表是员工信息表(100条记录),表名:user_info ,字段名: id , name
B表是员工得分表(65条记录)。表名:user_score ,字段名: id ,
只有部分员工已产生得分,而没有得分的员工,在B表中无记录。
我想将所有员工的信息(id,name)和得分()用一条语句查询出来,问题那些没得分的员工也要一并查出来,并且字段给空值,例如:001 张三 89
002 李四
003 王五 78关键是李四的信息也要查出来。取数据的目的的是显示到web页面的表单里,领导打分时,可以给已得分的员工修改分数,也可以未得分的员工新评分。是否要用到表的连接?请各位高手指教! 谢谢!
B表是员工得分表(65条记录)。表名:user_score ,字段名: id ,
select a.id,a,name,b. from a,b where a.id = b.id(+)
select id,name, from a left join b on (a.id=b.id);
select id,name, from a,b where a.id=b.id(+);
解决方法:(1)如楼上所说
(2)select a.id, a.name, b. from a left join b where a.id = b.id
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'"该如何修改?谢谢!
在线验证,在线结贴。
因为你用了外连接,没有评分的员工对应的b.id为空值了,所以你的条件应该价格上nvl(b.id,'001')='001'