Tak więc ostatnie zapytanie, którego używam, wygląda tak:
SELECT distinct t2.id , t2.name FROM
categories AS t1 LEFT JOIN categories as t2
ON t1.id = t2.parent
LEFT JOIN categories as t3
ON t2.id = t3.parent
WHERE t1.parent = $id OR t1.id = $id and t2.visible = 1
jeśli zwracany jest pusty zestaw wyników, oznacza to, że dostarczono węzeł końcowy i po prostu zwracam dostarczony $id.its działający. Mam nadzieję, że tak będzie dalej, ponieważ trochę tutaj zgaduję.