Mysql 我想将下个月的员工薪资表更新为当前表
嗨,我有一个叫做jan的当前薪资表,列是employeename、employeeid和Jansalary。我必须将2月的工资更新到1月的表格。我的代码是:Mysql 我想将下个月的员工薪资表更新为当前表,mysql,sql,Mysql,Sql,嗨,我有一个叫做jan的当前薪资表,列是employeename、employeeid和Jansalary。我必须将2月的工资更新到1月的表格。我的代码是: update jan set jan.salary=feb.salary from jan inner join feb on feb.employeeid=jan.employeeid 我的问题是,如果feb有新的员工薪资数据,我应该使用right join吗?您的查询不正确,您无法在更新后进行更新,因为它将为您提供不正确的语法 正
update jan
set jan.salary=feb.salary
from jan
inner join feb
on feb.employeeid=jan.employeeid
我的问题是,如果feb有新的员工薪资数据,我应该使用right join吗?您的查询不正确,您无法在更新后进行更新,因为它将为您提供不正确的语法 正确的查询如下所示:
update jan, feb
set jan.salary=feb.salary
where feb.employeeid=jan.employeeid;
如果您在2月份有新员工工资数据,您有两个选择:
选项1:您不想在1月1日获得新员工的薪资数据,因此在本例中无需执行任何操作,因为您的加入基于employeeid
选项2:您希望复制1月份的新员工薪资数据,以便此查询可以执行以下操作:
INSERT INTO `feb` (`employeeid`,`employeename`,`salary`)
SELECT DISTINCT(feb.employeeid), employeename, salary
FROM feb
WHERE feb.employeeid NOT IN (SELECT jan.employeeid FROM jan);
您的设计很糟糕最好只是创建一个名为salary
的表,然后将月份作为归档的月份放在此表中:
薪资表
首先,这是一个糟糕的数据库设计。其次,你正在用二月的数据覆盖一月。第三,根据实际数据,内部连接可能根本不正确。我的目的是覆盖1月份的数据。谢谢Farouk。真的很感激