根据另一个表中的值更新表中的值

时间:2013-06-25 22:10:59

标签: oracle join sql-update

是否可以根据Oracle中另一个表中的值更新表中的值?

我正在努力完成这样的事情(我知道这不是一个正确的UPDATE语句):

  UPDATE table1 
   SET table1.flag = 1 
  FROM table1 t1 
 INNER JOIN table2 t2
    ON t1.emp_id = t2.emp_id 
 INNER JOIN table3 t3
   ON t2.company = t3.company
 WHERE t1.emp_id = '5632'
   AND l2.company = '83CP'
   AND t1.code = 'LIEU'

1 个答案:

答案 0 :(得分:1)

我希望你在table1中有一个主键,所以使用它而不是rowid但是如果你没有使用

update table1
set flag =1
where rowid in ( select t1.rowid
                 FROM table1 t1 
                      INNER JOIN table2 t2 ON t1.emp_id = t2.emp_id 
                 INNER JOIN table3 t3 ON t2.company = t3.company
                 WHERE t1.emp_id = '5632'
                       AND l2.company = '83CP'
                       AND t1.code = 'LIEU'              
               )