mysqlがサポートしていない再帰的結合が必要です。あなたができる唯一のことは深さの最大レベルを決定することです(あなたがp-> cを持っているのであなたの場合それは1です)そしてこれであなたは必要な結合の数を決定することができます:
最大レベルの深さ=自己結合の数 :
SELECT
p.id as parent_id,
p.name as parent_id,
c1.id as child_id,
c1.name as child_name
FROM
my_table p
LEFT JOIN my_table c1
ON c1.parent = p.id
WHERE
p.parent=0
たとえば、深度の最大レベルが3の場合、3つの自己結合が必要になります。
SELECT
p.id as parent_id,
p.name as parent_id,
c1.id as child_id_1,
c1.name as child_name_1,
c2.id as child_id_2,
c2.name as child_name_2,
c3.id as child_id_3,
c3.name as child_name_3
FROM
my_table p
LEFT JOIN my_table c1
ON c1.parent = p.id
LEFT JOIN my_table c2
ON c2.parent = c1.id
LEFT JOIN my_table c3
ON c3.parent = c2.id
WHERE
p.parent=0