La pregunta que queda es: el valor de
todos_los_leads.idSHF ¿Es opcional u obligatorio?
Si es obligatorio, y siempre existe, corresponde usar INNER JOIN. Si es opcional, y puede ser nulo, se debe usar LEFT JOIN.
Caso 1:
Código MySQL:
Ver original tl.idperson,
tl.firstName,
tl.lastName,
tl.telephone,
tl.degreeOfInterest,
l.appointmentDate,
e.firstName,
i.marketability,
s.monthlyIncome
leads
AS l
ON tl.idperson
= l.idPerson
empleados
AS e
ON tl.idEmployee
= e.idEmployee
infonavit
AS i
ON tl.idInfonavit
= i.idInfonavit
shf
AS s
ON tl.idSHF
= s.idSHF
;
Caso 2:
Código MySQL:
Ver original tl.idperson,
tl.firstName,
tl.lastName,
tl.telephone,
tl.degreeOfInterest,
l.appointmentDate,
e.firstName,
i.marketability,
IFNULL(s.monthlyIncome
, 0.0) monthlyIncome
leads
AS l
ON tl.idperson
= l.idPerson
empleados
AS e
ON tl.idEmployee
= e.idEmployee
infonavit
AS i
ON tl.idInfonavit
= i.idInfonavit
shf
AS s
ON tl.idSHF
= s.idSHF
Nota: No hace falta que uses los "AS". Son obsoletos, y lo único que hacen es ensuciar el código.
Lo que seguro NO debes usar es UNION (sea ALL o no), porque ese tiene otro uso: