当前位置: 首页 > 面试题库 >

如何删除MySQL中的所有孤立记录?

孟茂学
2023-03-14
问题内容

我有3个表MySQL(MyIsam):

user (id), message (id, userId, ...), archivedMessage (id, userId, ...)

如何删除所有没有消息也没有archivedMessage的用户?


问题答案:

您可以使用not exists

delete from user
where not exists (select * from message m where m.userid = user.id)
      and not exists (select * from archivedMessage am where am.userid = user.id)


 类似资料:
  • 以以下两个表格为例: 和 主键和。 我需要删除任何没有相关的。大约有3MM和25MM记录。 我正在尝试以下两个问题: 正如您所看到的,即使不删除任何记录,两个查询都会在大约3分钟内显示类似的性能。 服务器磁盘I/O峰值达到100%,因此我假设数据正在溢出到磁盘,因为对和都进行了顺序扫描。 服务器是EC2r3.large(15GB RAM)。 我能做些什么来优化这个查询呢? 在为两个表运行并确保设置

  • 问题内容: 如果要删除某个事件,我需要查询类似的内容, 但是我找不到一次删除所有事件的命令,必须逐个删除事件。是否有一些SQL可以一次删除所有事件? 也不工作。 问题答案: 示例一: https://dev.mysql.com/doc/refman/5.1/zh-CN/events- privileges.html 如果您可以使用删除事件,然后使用新的预定时间重新添加事件。 要自己永久删除某个事件

  • 本文向大家介绍nhibernate 全部删除孤立项,包括了nhibernate 全部删除孤立项的使用技巧和注意事项,需要的朋友参考一下 示例 保存/更新/删除对象时,请检查关联并保存/更新/删除找到的所有对象。除此之外,当一个对象从关联中删除并且不与另一个对象(孤立的)关联时,也将其删除。

  • 问题内容: 我正在尝试清理有很多孤立物品的桌子。 我正在通过查找空值来检查是否与另一个表有关系,从而达到这一目的。 我收到一个错误,左外部联接无效。 我正在寻找其他方法的建议,可以从这种破裂的关系中删除这些孤儿 问题答案: 试试这个:

  • 问题内容: 我已经看到了许多变化,但是没有什么与我要完成的工作完全匹配。 我有一张表格,其中包含用户对可配置问卷的回答。列为。 不知何故,一些成员两次提交了答案。因此,我需要删除重复的记录,但要确保保留一排。 没有 主 列,因此可能有两行或三行的数据完全相同。 是否有查询以删除所有重复项? 问题答案: 在表上添加 唯一索引 : 另一种方法是: 在表中添加主键,然后可以使用以下查询轻松地从表中删除重

  • 我正在运行此查询, 这是您在图片中看到的id为19的唯一删除记录。 id的列类型是整数。