我有一个包含用户,列表和users_to_lists表的数据库。
当用户从列表中删除自己时,我使用以下内容:
"DELETE FROM users_to_lists WHERE user_id=? AND list_id=?"
我想要做的是通过删除列表进行清理,只有在最后一个用户从列表中删除了自己并且不确定如何执行此操作后,还没有剩下用户。
所以我想做的是: 1.删除用户列表的关系 2.检查列表是否有任何用户关系 3.如果没有用户关系,删除列表
想知道在这种情况下最佳做法是什么
答案 0 :(得分:0)
我建议您查看Foreign Key Constraints
的文档您可以使用ON_DELETE CASCADE
属性优化查询。查看文档。如果您有任何疑问,可以在评论中询问我。
答案 1 :(得分:0)
您可以将其与delete语句一起添加,以清除所有未使用的列表。
DELETE FROM list WHERE id <> (SELECT list_id FROM users_to_lists)