MySQL está tratando de aplicar ORDER BY a UNION pero UNION solo tiene el child
columnas (sin el child.
prefijo en eso), no hay s.id
en la UNIÓN. Pero puedes agregar uno:
SELECT child.*, s.id as sid ...
UNION
SELECT child.*, s.id as sid ...
ORDER BY sid DESC
Debe darle un alias, ya que UNION eliminará el nombre de la tabla o el prefijo del alias. Si hay un sid
columna en child
luego use algo más como alias para s.id
.