MySQL forsøger at anvende ORDER BY til UNION, men UNION har kun child kolonner (uden child.). præfiks ved det), er der ingen s.id i UNION. Men du kan tilføje en:
SELECT child.*, s.id as sid ...
UNION
SELECT child.*, s.id as sid ...
ORDER BY sid DESC
Du skal give den et alias, da UNION fjerner tabelnavnet eller aliaspræfikset. Hvis der er en sid kolonne i child brug derefter noget andet som alias for s.id .