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
er van uitgaande dat je tafel T. heet, is echter niet getest. niet zeker wat er gebeurt als d geen drie ouders heeft, waarschijnlijk krijg je niets, zou LEFT JOIN kunnen proberen voor die gevallen om NULL-waarden voor de geweldige ouders te verkrijgen. Ook is de laatste JOIN niet echt nodig omdat je gewoon b.parent_id kunt selecteren in plaats van a.id, maar, weet je, gewoon om het patroon naar huis te rijden;)