O MySQL está tentando aplicar o ORDER BY ao UNION, mas o UNION tem apenas o
child colunas (sem o child. prefixo nisso), não há s.id na UNIÃO. Mas você pode adicionar um:SELECT child.*, s.id as sid ...
UNION
SELECT child.*, s.id as sid ...
ORDER BY sid DESC
Você precisa fornecer um alias, pois o UNION removerá o nome da tabela ou o prefixo do alias. Se houver um
sid coluna em child então use outra coisa como o alias para s.id .