@Vitalionus

Как в MySql Выбрать все записи, у который не существует родителя по parent_id?

Добрый день, есть таблица где более миллиона записей. Таблица дерево с родителями и чилдренами по parent_id
Но в ней есть мусор, это записи у которых нет родителя. Как их удалить?
Структура таблицы:
id parent_id name
1 0 запись
1 1 запись1
1 7 мусор
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
motokraft
@motokraft
Кратко о себе
Для начала проверь что возвращает правильные записи.
SELECT GROUP_CONCAT(t1.id) FROM table_name as t1 left join table_name as t2 on t2.id = t1.parent_id where t1.parent_id > 0 and t2.id is null

Потом удаление мусора:
DELETE t1 FROM table_name as t1 left join table_name as t2 on t2.id = t1.parent_id where t1.parent_id > 0 and t2.id is null

table_name - одно и тоже имя таблицы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы