Oracle更新使用多个表

时间:2014-09-18 17:47:31

标签: oracle sql-update multiple-tables

有人可以帮我这个sql语句在Oracle上运行吗?我是Oracle的新手。我尝试了不同的方法,但得到语法错误。使用此语句,我得到Missing SET keyworkd错误,如果我删除了员工,则会为emp_id获取无效的列名。

update emp_bonus, employee                                                               
set emp_bonus.bonus = '555'                        
where emp_bonus.emp_id = employee.emp_id and emp_bonus.bonus_id  = '101';

1 个答案:

答案 0 :(得分:2)

是的,您有语法错误。 你喜欢做什么?

在这种情况下,查询将按如下方式构建:

UPDATE   EMP_BONUS
   SET   EMP_BONUS.BONUS = '555'
 WHERE   EMP_BONUS.BONUS_ID = '101'
         AND EXISTS (SELECT   'X'
                       FROM   EMPLOYEE
                      WHERE   EMP_BONUS.EMP_ID = EMPLOYEE.EMP_ID);

只有在BONUS表格中ID 存在时才更新EMPLOYEE字段。