2011-01-26 19 views
9

I持って3つのテーブルのMySQL(MyISAMテーブル):MySQLのすべての孤立レコードを削除するには?

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

どのように私は何のメッセージとNO archivedMessageを持たないすべてのユーザーを削除することができますか?

答えて

15

あなたは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) 
+0

がに対する賛否/短所はあります 'LEFT参加... NULL'方法ですか? – Toto

+1

@写真:機能的には同じですが、パフォーマンスに差が生じることがあります – Andomar

関連する問題