现在有两张表。
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页面的表单里,领导打分时,可以给已得分的员工修改分数,也可以未得分的员工新评分。是否要用到表的连接?请各位高手指教! 谢谢!
解决方案 »
- 有没有什么插件或第三方软件可以实时监控库中表的变动
- help:windows重装ie后后oracle服务消失
- 关于Oracle中序列的导入导出,求高手指点
- 多个存储过程或包,可以运行脚本一次更新吗?怎么做?
- c#中用msdaora.1驱动连接oracle调用oracle8.1.7存储过程返回两个结果集时为何只返回一个结果集?
- 存储过程中声明二维数组实现,入参是一条记录(可能有语病),出参是整个一个结果集
- 一个关于FOR循环接受值的问题大家赐教啊~~~!
- 怎么把一个表中的两个字段拼在一起?
- 请教ORACLE8 FOR AIX上的问题
- 在戴尔服务器上装orale Linux 6.4,然后再装oracle 11g R2,
- 行转列的通用过程
- 日期填充
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'