MySQL. Удаление записей с несуществующей ссылкой
Предположим у нас есть 2 таблички - ПАПКИ (folders) и ФАЙЛЫ (files). У файлов есть ссылка на айдишку папки, в которой они распологаются. Предположим, что по неосторожности мы удалили несколько ненужных нам папок, но забыли удалить файлы, которые лежали в этих папках. Итак, для того, что бы удалить файлы, у которых ссылка на несуществующую папку, выполняем запрос:
delete from files
where
folder_id not in (select folder_id from folders) and folder_id <> -1
В этом примере так же учтена корневая папка (-1).
6 комментариев