MySQL försöker tillämpa ORDER BY till UNION men UNION har bara child kolumner (utan child. prefix vid det) finns det ingen s.id i UNION. Men du kan lägga till en:
SELECT child.*, s.id as sid ...
UNION
SELECT child.*, s.id as sid ...
ORDER BY sid DESC
Du måste ge den ett alias eftersom UNION tar bort tabellnamnet eller aliasprefixet. Om det finns en sid kolumn i child använd sedan något annat som alias för s.id .