我在从另一个表更新一个表时遇到问题。我希望SQL从两个Employees
字段相同的CompanyEmployees
中的数据更新EmployeeNum
中的行。另外,如果EmployeeNum
中存在一个CompanyEmployees
与Employees
中的不匹配,那么我需要在Employees
中创建一个新行
到目前为止,我已经尝试了两个表的联接。
SELECT Employees.PhoneNum, Employees.Data,
CompanyEmployees.PhoneNum, CompanyEmployees.SystemData
FROM CompanyEmployees
INNER JOIN Employees
ON CompanyEmployees.Employees=Techs.EmployeeNum
我在两个表中都获得了正确的列数据,但是我没有更新
Employees
。我需要在某个地方插入或更新吗?如何将
CompanyEmployees
中的整行数据插入Employees
中不存在CompanyEmployees.EmployeeNum
的Employees
中?我需要这样做,因为
CompanyEmployees
只是电话目录,而Employees
具有电话号码和更多信息。但是CompanyEmployees
内部有新员工,而这些新员工不在Employees
内部。 最佳答案
请记住,RDBMS具有用于关系的R。它们是为关系而建立的。
要使用CompanyEmployees表更新Employees表,可以使用如下所示的内容:
INSERT INTO Employees (columns) VALUES (SELECT columns FROM CompanyEmployees) ON DUPLICATE KEY UPDATE
您可能甚至不需要“雇员”,因为它是“公司雇员”的超集。我建议寻找合并两个表或至少将数据移动到单个表中的方法。