SELECT c.id, b.id, a.id
FROM T
INNER JOIN T AS c on T.parent_id=c.id
INNER JOIN T AS b ON c.parent_id = b.id
INNER JOIN T as a ON b.parent_id = a.id
zakładając jednak, że twój stół o nazwie T. nie został przetestowany. Nie wiesz, co się stanie, jeśli d nie ma trzech rodziców, prawdopodobnie nic nie otrzymasz, możesz spróbować LEFT JOIN w takich przypadkach, aby uzyskać wartości NULL dla świetnych rodziców. Ponadto ostatnie JOIN nie jest tak naprawdę konieczne, ponieważ możesz po prostu wybrać b.parent_id zamiast a.id, ale wiesz, po prostu poprowadzić wzorzec do domu;)