Creo que no has aplicado normalización de tablas. Te vendría muy bien hacerlo, ya que te ayudará a ahorrar espacio, y a realizar consultas mas sencillas (te lo digo porque heredas dos campos, y como no veo todas las tablas, me da la impresión de que no lo has normalizado).
Bueno, en principio he sacado esto, seguramentre no te funciona, pero prueba a ver si a partir de aqui puedes sacar algo en claro, o a ver si alguien puede aportar una solución más correcta.
Tendrás que cambiarle almenos los nombres, para que coincidan con tus campos y tablas.
(SELECT J.DNI, J.Nombre, J.Jornada, P.Resultado
FROM P Partidos, J Jugadores
WHERE P.DNI=J.DNI AND P.ID_TORNEO=J.ID_TORNEO AND P.JORNADA='$jornada')
UNION
(SELECT Ju.DNI, Ju.Nombre, Ju.Jornada, MAX(Resultado)
FROM Pa Partidos, Ju Jugadores
WHERE Pa.DNI=Ju.DNI AND Pa.ID_TORNEO=Ju.ID_TORNEO AND MAX(Resultado)<'$jornada'
GROUP BY Pa.dni AND Pa:ID_TORNEO)
Los problemas los tendrás en la segunda consulta. No recuerdo muy bien el funcionamento del HAVING, asi que la condicion MAX(Resultado)<'$jornada' la he incluido en el WHERE(que es donde creo que tiene que ir en este caso).
Ya me contarás.