Мне нужно найти верхнего родителя в иерархии, где я предоставляю ребенка. самый верхний родитель будет, когда id = ref
пример таблицы:
+--------------------+
| id parent_id ref |
+--------------------+
| 1 1 1 |
| 2 1 1 |
| 3 2 1 |
| 4 3 1 |
| 5 4 2 |
+--------------------+
Мне нужно получить самого верхнего родителя (id 1), когда я введу id 4
я не могу просто выбрать * из таблицы, где ref = id, поскольку в той же таблице может быть другая иерархия, поэтому запрос должен выполнить:
начать с идентификатора, например, 4 check id_parent = ref, если не равно, то использовать parent_id в качестве нового идентификатора и проверяет, является ли он id_parent = ref и так далее, пока parent_id = ref
Кроме того, идентификатор 5 имеет другую иерархию
Любая помощь очень ценится Спасибо