Привет У меня есть таблица в которой объект РОДИТЕЛЬ привязывается к ДОЧЕРНЕМУ объекту. И такие связи могут выстраиваться в цепочку То есть бы объект 1 к нему привязали объект 2. Потом к 2 проивязали 3 И так далее Мне нужно для входного параметра ID(например 4) получить все уникальные привязанные ID, в том числе и в подчиненных связках(в данном случае 4 привязан напрямую только к 3, но косвенно через суб связи привязан к 2,1,5,6) Если говорить о бизнес задаче - то есть система сообщений и на любое сообщение можно ответить, и так цепочкой ответы пишутся 1 привязывается к другому. Благодарю за помощь! Код (Text): CREATE TABLE `test_comment` ( `id1` int(11) NOT NULL, `id2` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*Data for the table `test_comment` */ insert into `test_comment`(`id1`,`id2`) values (1,2), (2,3), (3,4); (4,5); (5,6);
"Мне нужно..." => "Сколько платишь?" Ты пытаешся заново изобрести древовидную иерархию. Эта тема очень подробна изучена и есть популярные подходы к решению. Есть готовые библиотеки и компоненты. Надо только искать правильно. Дам контекст для поиска: Adjacency List (AL): когда в одно таблице есть поля id (первичный ключ) и parent_id (внешний ключ, ссылающийся на id) Nested Sets (NS): когда у записи есть поля left и right. Все остальные записи считаются "вложенными" в эту если их left попадает в промежуток между left и right родительской записи. Materialized Path (MP): когда каждая запись имеет строковое поле, подобное рубрикатору в каком-нибудь каталоге: 1 1.1 1.1.1 1.1.2 1.2.1 1.2.2 всё, что начинается на "1.1." будет дочерним по отношению к "1.1" и т.д. Удачи в поиске! типа https://www.google.com/search?php+mysql+adjacency+list
Как правило, это делают с помощью php. Гуглите "mysql дерево категорий" Хотя, если нужно получить все существующие ветки, то можно и триггер сделать.
Да, чуть не забыл. В решении этой задачи есть одна проблема - ссылающиеся друг на друга записи. Чтобы скрипт не вошел в бесконечный цикл - ставьте ограничение количества итераций.