如果字段在另一个表中,则对每一行进行Mysql检查,如果没有,则删除该行



我有两个表,第一个叫"users",第二个叫"profiles"。两个表都有一个名为"id"的字段,profiles表也有一个称为"user_id"的字段。我用它来连接这两个表。长话短说,当用户被删除时,他们的配置文件没有(这个问题已经解决(,我想在配置文件表中找到所有没有用户连接的配置文件。我需要以某种方式检查配置文件表中的每一行,看看字段"id"下的"user_id"字段是否存在于"users"表中,以及它是否没有删除配置文件表内包含该"user_id"的行。

您可以使用not exists:

select p.*
from profiles p
where not exists (select 1 from users u where p.profile_id = u.id);

如果要删除行:

delete p from profiles p
where not exists (select 1 from users u where p.profile_id = u.id);

相关内容

  • 没有找到相关文章

最新更新