我有2个表:employee
和employeedetails
。
employee
看起来像这样:
id name
----------------
1 Suresh
2 Ram
3 Ravi
employeedetails
看起来像这样:
empid salary
----------------
1 10000
2 5000
3 40000
我想更新某个人的salary
字段。为此,我知道第一个表的员工姓名。基于此,我需要编写一个查询,使用单个查询更新salary
字段。我怎么能这样做?
例如,如果我必须更新Ravi的工资详情,我该如何在一个查询中完成?
答案 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
)
;