В вашем запросе теоретически возможно, что у одного ребенка есть два разных родителя, что сделало бы его для нестандартной терминологии. Предположим, что ваши шаблоны данных делают это невозможным.
Затем следующее дает вам тот же результат, используя отдельные индексы, по одному индексу на столбец.
SELECT parent.field, child.field
FROM parent
JOIN child ON child.id = parent.id
UNION ALL
SELECT parent.field, child.field
FROM parent
JOIN child ON child.id = parent.otherid