繁体   English   中英

如何将查询与SQL中的表进行比较

[英]How to compare a query to a table in sql

我有一些查询,可以查找已订阅的人员,并将其电子邮件插入表格中。 要进行更新,它总是会截断该表并在其中再次插入所有记录。 现在,我希望它不会每次都截断并插入所有数据(对于非常大的记录会花费很长时间),但是要进行选择并检查旧表是否有更改,并且仅将这几条记录添加/删除。桌子。

任何想法我将如何解决这个问题?

如果不存在,则可以检查电子邮件是否存在,如果不存在,则可以编写插入语句。 以下是希望它对您有帮助的示例:)如果不存在(从t_emails中选择*,其中email = @ yoursuscribeemail)开始插入t_emails(email)值(@yoursuscribeemail)端,我假设订阅的电子邮件来自用户端。 如果没有评论

delete from subscriber_emails
where email in (select email from subscriber_emails e
join users u on e.email=u.email
where u.subscribed=false);

insert into subscriber_emails (email)
select email from users u
outer join subscriber_emails e on u.email=e.email
where e.email is null;

由于我不知道您的两个表的架构,因此我必须在此处使用一些占位符,请根据需要更改关键字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM