1

我需要在 mysql 中编写一个每晚运行并执行以下操作的程序:-

对于 'associate' 表中的每个 'id' ,查找特定 'department' 的 'status table' 中是否有条目。如果有条目,则继续下一个“id”,否则在状态表中为该 id 插入一行。

关联表

Assoc_Id

Assoc_Project

Assoc_Assigned_On

状态表

子标识

Assoc_Id

子_on

部门

我只是不知道如何做到这一点。任何帮助将不胜感激。

提前致谢

4

1 回答 1

1

由于您没有提供完整的架构,我不确定表上的主键/外键,但这里有一个可以帮助您的查询:

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的表中的表上。该子句过滤结果,使其仅根据连接条件显示当前不在表中的记录。我选择是因为我认为这是主键。您在此处选择什么并不重要,只是该值必须是表顺序中的非空字段才能使此查询起作用。statusassociateAssoc_IdWHEREstatusSub_Idstatus

于 2014-03-01T19:49:38.717 回答