我需要在 mysql 中编写一个每晚运行并执行以下操作的程序:-
对于 'associate' 表中的每个 'id' ,查找特定 'department' 的 'status table' 中是否有条目。如果有条目,则继续下一个“id”,否则在状态表中为该 id 插入一行。
关联表
Assoc_Id
Assoc_Project
Assoc_Assigned_On
状态表
子标识
Assoc_Id
子_on
部门
我只是不知道如何做到这一点。任何帮助将不胜感激。
提前致谢
由于您没有提供完整的架构,我不确定表上的主键/外键,但这里有一个可以帮助您的查询:
INSERT INTO tbl_status (Assoc_Id, Sub_on, Department)
SELECT a.Assoc_Id, [Your Sub_on Value], 'IT'
FROM tbl_associate a
LEFT JOIN tbl_status s ON a.Assoc_Id = s.Assoc_Id AND s.Department = 'IT'
WHERE s.Sub_Id IS NULL;
这里的基本思想是从's 相等并且部门值是您要搜索LEFT JOIN
的表中的表上。该子句过滤结果,使其仅根据连接条件显示当前不在表中的记录。我选择是因为我认为这是主键。您在此处选择什么并不重要,只是该值必须是表顺序中的非空字段才能使此查询起作用。status
associate
Assoc_Id
WHERE
status
Sub_Id
status