Mysql 比较两个表并显示缺少的行

Mysql 比较两个表并显示缺少的行,mysql,sql,joomla1.5,Mysql,Sql,Joomla1.5,最近,我的joomla 1.5网站成为垃圾邮件注册的目标,所以我去了phpmyadmin,开始过滤和删除来自jos_用户的注册,但我完全忘记了joomla注册还有两个表依赖项(jos_core_acl_groups_aro_map和jos_core_acl_aro)现在我有了90.000行的jos_用户和120.000行的其他两个依赖表 我发现此SQL命令用于填充3个表: insert into jos_core_acl_aro (section_value, value, name)

最近,我的joomla 1.5网站成为垃圾邮件注册的目标,所以我去了phpmyadmin,开始过滤和删除来自jos_用户的注册,但我完全忘记了joomla注册还有两个表依赖项(jos_core_acl_groups_aro_map和jos_core_acl_aro)现在我有了90.000行的jos_用户和120.000行的其他两个依赖表

我发现此SQL命令用于填充3个表:

insert into  jos_core_acl_aro (section_value, value, name)
    select 'users', id, name from jos_users;
但是我发现在一个有12万注册的现场站点上使用这个方法太冒险了,而且它会恢复我已经在jos_用户中删除的垃圾邮件注册

我需要一个SQL命令来比较jos_users表和其他两个表,并显示我从jos_用户中删除的jos_core_acl_groups_aro_map和jos_core_acl_aro中缺少的行

我试过这个命令:

select * 
from tcpt_users 
where tcpt_users.id not in (select tcpt_core_acl_groups_aro_map.aro_id
                            from tcpt_core_acl_groups_aro_map)
但这不起作用,它使mysql对内存的需求越来越大,我的服务器将崩溃

一些方向是最受欢迎的

编辑

好的,我得到了您共享的别名概念,因此我运行了以下命令:

select * 
from tcpt_users a
left join tcpt_core_acl_aro b on a.id = b.value 
where b.value is null
但是仍然会让mysql服务器发疯,这会从一开始就影响我的服务器负载命令的格式很好,我可能有一些服务器限制有没有办法限制要显示的行数

编辑1:我想我算出了行数限制,这就是我运行的:

select * 
from tcpt_users a
left join tcpt_core_acl_aro b on a.id = b.value 
where b.value is null
LIMIT 25
发生同样的情况,我必须重新启动mysql,因为查询将永远持续,我的服务器将冻结

我现在没有选择,我现在需要一些帮助

您可以使用left join

select * from tcpt_users a
left join tcpt_core_acl_groups_aro_map b on a.id =b.aro_id 
where b.aro_id is null

a和b字母应该在那里,或者只是一个例子?它是table alias name@DaniQueirogai运行您的命令并冻结mysql服务器可能我必须切换要比较的表。我对逻辑有点困惑