Mysql o检查以确保发送给成员的电子邮件在tb\u email\u中存在一次以上 DELETE FROM tb_email_to_members WHERE email_id NOT IN (SELECT frn_email_id FROM tb_tx) AND email_address IN (SELECT email_address FROM tb_email_to_members GROUP BY email_address HAVING COUNT(email_address) > 1);

Mysql o检查以确保发送给成员的电子邮件在tb\u email\u中存在一次以上 DELETE FROM tb_email_to_members WHERE email_id NOT IN (SELECT frn_email_id FROM tb_tx) AND email_address IN (SELECT email_address FROM tb_email_to_members GROUP BY email_address HAVING COUNT(email_address) > 1);,mysql,duplicate-removal,Mysql,Duplicate Removal,显然,将DELETE更改为SELECT*将向您显示要删除的内容 知道tb的额外积分是花边新闻的缩写?@MHardwick和@ShadowRay几乎做到了。以下内容还将进行检查,以确保该电子邮件在tb\u email\u to\u成员中多次存在 DELETE FROM tb_email_to_members WHERE email_id NOT IN (SELECT frn_email_id FROM tb_tx) AND email_address IN (SELECT email_

显然,将
DELETE
更改为
SELECT*
将向您显示要删除的内容


知道
tb
的额外积分是花边新闻的缩写?

@MHardwick和@ShadowRay几乎做到了。以下内容还将进行检查,以确保该电子邮件在
tb\u email\u to\u成员中多次存在

DELETE FROM tb_email_to_members
  WHERE email_id NOT IN (SELECT frn_email_id FROM tb_tx)
    AND email_address IN (SELECT email_address FROM tb_email_to_members GROUP BY email_address HAVING COUNT(email_address) > 1);
显然,将
DELETE
更改为
SELECT*
将向您显示要删除的内容


知道tb的奖励积分是花边新闻的缩写?

谢谢,赛斯!虽然我不知道为什么,但最终还是没有成功。当我以SELECT*格式运行它时,它只找到了21个匹配项,而下面的解决方案是582个。我误解了这个问题,结果查询有点疯狂。不过,我很高兴你有一个(似乎)有效的。谢谢你,赛斯!虽然我不知道为什么,但最终还是没有成功。当我以SELECT*格式运行它时,它只找到了21个匹配项,而下面的解决方案是582个。我误解了这个问题,结果查询有点疯狂。不过,我很高兴你有一个(似乎)有效的。谢谢你,史蒂夫!据我所知,它在数据库的本地测试副本(以SELECT*形式)上正确运行。唯一的问题是它花费了非常长的时间,当我在生产服务器的数据库副本上尝试它时,在其他查询组合使站点(由数据库驱动)完全无响应之前,它没有完成,直到我终止mysql进程。我想我必须制作一份tb_email_发送给_成员的副本,然后替换主副本……你可以做的一件事就是运行子查询(在where子句中)提前并在delete中使用该结果我会考虑-处理站点未使用的数据库副本可能同样容易-同时确保备份。:-)谢谢你,史蒂夫!据我所知,它在数据库的本地测试副本(以SELECT*形式)上正确运行。唯一的问题是它花费了非常长的时间,当我在生产服务器的数据库副本上尝试它时,在其他查询组合使站点(由数据库驱动)完全无响应之前,它没有完成,直到我终止mysql进程。我想我必须制作一份tb_email_发送给_成员的副本,然后替换主副本……你可以做的一件事就是运行子查询(在where子句中)提前并在delete中使用该结果我会考虑-处理站点未使用的数据库副本可能同样容易-同时确保备份。:-)
DELETE FROM tb_email_to_members WHERE email_id NOT IN (select frn_email_id FROM tb_tx);
DELETE FROM tb_email_to_members
  WHERE email_id NOT IN (SELECT frn_email_id FROM tb_tx)
    AND email_address IN (SELECT email_address FROM tb_email_to_members GROUP BY email_address HAVING COUNT(email_address) > 1);