我在从另一个表更新一个表时遇到问题。我希望SQL从两个Employees字段相同的CompanyEmployees中的数据更新EmployeeNum中的行。另外,如果EmployeeNum中存在一个CompanyEmployeesEmployees中的不匹配,那么我需要在Employees中创建一个新行
到目前为止,我已经尝试了两个表的联接。

SELECT Employees.PhoneNum, Employees.Data,
       CompanyEmployees.PhoneNum, CompanyEmployees.SystemData
FROM CompanyEmployees
INNER JOIN Employees
ON CompanyEmployees.Employees=Techs.EmployeeNum


我在两个表中都获得了正确的列数据,但是我没有更新Employees。我需要在某个地方插入或更新吗?
如何将CompanyEmployees中的整行数据插入Employees中不存在CompanyEmployees.EmployeeNumEmployees中?

我需要这样做,因为CompanyEmployees只是电话目录,而Employees具有电话号码和更多信息。但是CompanyEmployees内部有新员工,而这些新员工不在Employees内部。

最佳答案

请记住,RDBMS具有用于关系的R。它们是为关系而建立的。
要使用CompanyEmployees表更新Employees表,可以使用如下所示的内容:

INSERT INTO Employees (columns) VALUES (SELECT columns FROM CompanyEmployees) ON DUPLICATE KEY UPDATE


您可能甚至不需要“雇员”,因为它是“公司雇员”的超集。我建议寻找合并两个表或至少将数据移动到单个表中的方法。

07-28 07:02