Seleccione la fila principal de la misma tabla cuando se proporciona una fila secundaria

"id"    "parent"    "name"
"1"     "0"         "Books"
"2"     "1"         "Crime Fiction"
"3"     "2"         "Death On the Nile"

De algo como lo anterior, ¿cómo puedo seleccionar la namefila principal junto con el nombre del archivo child. Aquí, se proporcionará el nombre de la fila secundaria. Necesito obtener el namede los padres.

Salida deseada:

@id = 3

Crime Fiction //This is the name of the parent row - in this case 2
     Death on the Nile // This is the name of the row who's id was supplied.

¿Cómo se hace la selección dentro de la misma tabla?

Answer
select parent.name, child.name
from your_table child
left join your_table parent on child.parent = parent.id
where child.id = 3
select t1.name, t2.name as parent_name from tablename t1 join tablename t2
on t1.id=t2.parent where t1.id=3
SELECT (CASE WHEN p.name IS NULL THEN "???" ELSE p.name END) AS name 
FROM <your_table> c LEFT JOIN <your_table> p
ON c.parent = p.id
WHERE c.name = <yourname>
LIMIT 1;

Esta consulta devolverá el nombre principal del nombre secundario dado, o "???" si no pudiera encontrar un padre.