单个查询中的SQL更新

时间:2012-03-11 16:30:04

标签: sql

我有2个表:employeeemployeedetails

employee看起来像这样:

id      name
----------------
1       Suresh
2       Ram
3       Ravi

employeedetails看起来像这样:

empid    salary
----------------
1        10000
2        5000
3        40000

我想更新某个人的salary字段。为此,我知道第一个表的员工姓名。基于此,我需要编写一个查询,使用单个查询更新salary字段。我怎么能这样做?

例如,如果我必须更新Ravi的工资详情,我该如何在一个查询中完成?

4 个答案:

答案 0 :(得分:4)

update employeedetails 
inner join employee on employeedetails.empid = employee.id
set salary = 1000
where employee.name = 'Ram'

答案 1 :(得分:3)

试试这个:

update employeedetails set salary=1000000 where empid in (select id from employee where name='suresh');

答案 2 :(得分:1)

MERGE INTO employeedetails
   USING employee 
      ON employeedetails.empid = employee.id
         AND employee.name = 'Ravi'
WHEN MATCHED THEN
   UPDATE
      SET salary = 10000;

答案 3 :(得分:0)

UPDATE employeedetails det 
SET salary=100 
WHERE EXISTS ( SELECT NULL 
               FROM employee emp 
               WHERE name='Ravi'
                 AND det.empid = emp.id 
             )
;