для одного уровня: т.е. все прямые потомки 1
select id,name,parentid
where parentid = 1
вернет 1,2,3
чтобы получить ВСЕХ детей и внуков, и даже больше, если вы используете SQL 2005, вы можете использовать CTE, который включает рекурсию:
http://msdn.microsoft.com/en-us/library/ms190766.aspx
WITH Person_CTE AS (
SELECT id,name,parentid
FROM TableName
WHERE ID = 1
UNION ALL
SELECT ChildTable.id,ChildTable.name,ChildTable.parentid
FROM TableName ChildTable
Inner Join Person_CTE on Person_CTE.ID= ChildTable.parentid
)
SELECT * FROM Person_CTE
SQL вернется и присоединит родителей к детям, пока не найдет детей, которые вернутся
конечно, вы можете использовать Союз, но это вернет только первый и второй уровни (что будет достаточно для вашего набора данных)