Пример таблицы ниже. Недавно я добавил столбец «is_last_child» и хочу обновить его, чтобы иметь значение 1, если строка является последним дочерним элементом (или не является родителем). У меня был запросОбновление столбца с помощью подзапроса select в той же таблице
update node set is_last_child=1 where id not in (select parent_id from node);
При запуске я получаю следующее сообщение об ошибке. «Вы не можете указать узел« целевой таблицы »для обновления в предложении FROM». Я пробовал использовать соединение, но я уверен, как именно я могу обновить только строки, которые не являются родителями. У кого-нибудь есть идеи или они сталкиваются с подобной ситуацией?
id | parent_id | is_last_child
1 | 1 | 0
2 | 1 | 0
3 | 1 | 0
4 | 2 | 0
5 | 4 | 0
6 | 1 | 0
По существу я хочу, чтобы выбрать идентификаторы 3, 5, и 6, и установите столбец is_last_child равным 1. Это не моя схема и есть тысячи строк, но приведенная выше таблица является только упростить вещи ,
Спасибо! это сработало. Я просто должен был изменить синтаксис, так как я использую mysql, но я получил его работу в конце. –