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
при условии, что ваша таблица с именем T. не проверена. не уверен, что произойдет, если у d нет трех родителей, возможно, вы ничего не получите, возможно, попробуйте LEFT JOIN для этих случаев, чтобы получить значения NULL для великих родителей. Кроме того, последний JOIN не является действительно необходимым, потому что вы можете просто выбрать b.parent_id вместо a.id, но, вы знаете, просто отправить шаблон домой;)