En principio, ese que pones no es un LEFT JOIN. Para serlo, en MySQl debes obligatoriamente hacerlo explícito.
En cuanto a usar JOIN implícitos... en MySQL no es una buena idea. Es preferible que uses explícito siempre.
Algo como:
Código SQL:
Ver originalSELECT DISTINCT
per.nombre NAME,
per.apellido apelli,
per.telefono_p telp,
per.telefono_s tels,
per.idpersona
FROM personas per
INNER JOIN profesional_servicio ps ON per.idpersona = ps.idprofesionalper
INNER JOIN profesional_municipio pm ON per.idpersona = pm.idprofesionalper
INNER JOIN usuarios us ON us.idpersona = per.idpersona
INNER JOIN profesionales pr ON pr.idprofesionalper = pm.idprofesionalper
WHERE
AND ps.idservicio = $subact
AND us.idpermiso = 3
AND pm.idmunicipio = $idmuni
AND pr.saldo < 10
AND pr.invitaciones < 3
AND pr.fechultimotra = '00-00-0000'
Estoy suponiendo la relación con la tabla "profesionales", porque en realidad no la pusiste. Repetiste una que ya habías puesto, y probablemente por eso te fallara, ya que generaría un producto cartesiano-
En cuanto a esto:
quiero imaginar que no estás usando un campo VARCHAR para guardar una fecha. Eso sería una gran metida de pata... Para eso están los DATE y DATETIME.