MySQL se pokouší aplikovat ORDER BY na UNION, ale UNION má pouze child sloupce (bez child. předpona), neexistuje žádné s.id v UNII. Ale můžete jeden přidat:
SELECT child.*, s.id as sid ...
UNION
SELECT child.*, s.id as sid ...
ORDER BY sid DESC
Musíte mu dát alias, protože UNION odstraní název tabulky nebo předponu aliasu. Pokud existuje sid sloupec v child pak použijte něco jiného jako alias pro s.id .