クラスに登録されていないすべての人々を返す動作するmysqlクエリがあります。 SQLは次のとおりです。NOT INクエリの結果を削除するSQLクエリ
SELECT * FROM person
LEFT JOIN attendance
ON (person.id = attendance.pid)
WHERE (attendance.pid IS NULL
)
ここで、その結果のすべての人物を削除します。これを行う最善の方法は何ですか?私は "SELECT *"を "DELETE"に変更しようとしましたが、これは私に構文エラーをもたらしました。何か案は?
DELETE FROM person WHERE id NOT IN (SELECT pid FROM attendance)
データベースエンジンを使用していますか? –
'delete'で試してみるときに '*'を取り出したことを思い出しましたか? – Beef
http://stackoverflow.com/questions/5835589/sql-2-tables-how-to-delete-rows-if-id-not-referenced-in-both-tables/5835619#5835619 –