我有两个表,1索引电子邮件广告系列的详细信息。第二个表详细说明了此广告系列的收件人,以及他们是否已回复电子邮件等。
我需要创建一个存储过程,当TBL2中的所有引用(收件人)的状态都为> 1时,可以更新TBL1中“主记录”的状态。
为简单起见,表结构可以假定为;
TBL1
key | Title | Status(default 1)
TBL2
Key | TBL1_Key | Recipient | Status(default 0)
基本上我需要做的是将TBL1中的每条记录的状态(每次呼叫最多100个)(其状态已经== 1)设置为“2”,此时TBL2中的所有相应记录的状态均为> ; 1。
记录链接在TBL1.key = TBL2.TBL1_key
希望能够清楚地解释这一点,并且你可以给我一些帮助。
一如既往....感谢!!!!
答案 0 :(得分:2)
UPDATE tbl1 t1
SET status = 2
WHERE status = 1
AND NOT EXISTS
(
SELECT NULL
FROM tbl2 t2
WHERE t2.key = t1.key
AND t2.status <= 1
)
答案 1 :(得分:2)
如果我正确理解您的要求,则可以从TBL2中的状态值导出TBL1中的状态。因此TBL1中的状态是多余的,可以省略。相反,您可以定义一个列出TBL1中所有条目的视图,并包含另一个列,您可以根据TBL2上的条目计算状态。你可以,例如计算Status&lt;的条目数TBL2中为2,当该数字为0时返回总体状态2