我有一个名为company_emp
。在该表中,我有 6 列与员工相关:
- empid
- ename
- dob
- doj, ...
我还有另一张桌子叫bday
。我只有 2 列;恩皮德和多布。
我有这样的疑问:
select empid, dob
from company_emp
where dob like '01/05/2011'
它显示了一些员工列表。
以同样的方式,我用表 bday 查询它列出了一些员工。
现在我想更新company_emp
日期为“01/05/2011”的员工的表。
我尝试过这样的查询:
update company_name a
set dob = (select dob from bday b
where b.empid=a.empid
and to_char(a.dob,'dd/mm/yyyy') = '01/05/2011'}
然后该行中的所有记录都变为空。我该如何解决这个查询?
您正在更新 company_name/emp 表中的每一行。
您可以使用相关子查询来修复该问题,以确保该行存在,或者通过在 bday.empid 上放置主键或唯一键并查询来更有效地解决该问题:
update (
select c.dob to_dob,
d.dob from_dob
from company_emp c join dob d on (c.empid = d.empid)
where d.dob = date '2011-05-01')
set to_dob = from_dob
语法未测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)