例如,我有一个名为
的表应用程序与列
+---------------+------+-------+--------+-------+-------+
| ApplicationID | Name | Phone | DeptID | EmpNo | Email |
+---------------+------+-------+--------+-------+-------+
| | | | | | |
员工与列
+-------+------+-------+--------+
| EmpNo | Name | Phone | DeptID |
+-------+------+-------+--------+
| | | | |
EmpNo 是 int 且唯一的
当新人申请时,他们将被插入到申请表中,如果获得批准,他们将获得员工编号。
当现有员工想要申请新部门时,也需要将其插入申请表并进行处理
每个月我都需要处理这个表中的数据并插入/更新另一个名为employee的表。
INSERT INTO [Employee]
(
[EmpNo]
,[Name]
,[Phone]
,[DeptID]
)
SELECT [EmpNo]
,[Name]
,[Phone]
,[DeptID]
FROM [applications]
如何仅在申请表中存在 EmpNo 时更新?
INSERT INTO [Employee] ([EmpNo], [Name], [Phone], [DeptID])
SELECT a.[EmpNo], a.[Name], a.[Phone], a.[DeptID]
FROM [Applications] a
WHERE EXISTS (
SELECT 1
FROM [Applications] b
WHERE b.[EmpNo] = a.[EmpNo]
);
我认为这个查询可以解决您的问题。