MySQL sta cercando di applicare ORDER BY a UNION ma UNION ha solo il child colonne (senza il child. prefisso a quello), non c'è s.id nell'UNIONE. Ma puoi aggiungerne uno:
SELECT child.*, s.id as sid ...
UNION
SELECT child.*, s.id as sid ...
ORDER BY sid DESC
È necessario dargli un alias poiché UNION rimuoverà il nome della tabella o il prefisso dell'alias. Se è presente un sid colonna in child quindi usa qualcos'altro come alias per s.id .