Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/04/2014, 17:32
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problemas con UNION ALL

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
  1.     tl.idperson,
  2.     tl.firstName,
  3.     tl.lastName,
  4.     tl.telephone,
  5.     tl.degreeOfInterest,
  6.     l.appointmentDate,
  7.     e.firstName,
  8.     i.marketability,
  9.     s.monthlyIncome
  10.     `todos_los_leads` AS tl
  11.         INNER JOIN
  12.     leads AS l ON tl.idperson = l.idPerson
  13.         INNER JOIN
  14.     empleados AS e ON tl.idEmployee = e.idEmployee
  15.         INNER JOIN
  16.     infonavit AS i ON tl.idInfonavit = i.idInfonavit
  17.         INNER JOIN
  18.     shf AS s ON tl.idSHF = s.idSHF;
Caso 2:
Código MySQL:
Ver original
  1.     tl.idperson,
  2.     tl.firstName,
  3.     tl.lastName,
  4.     tl.telephone,
  5.     tl.degreeOfInterest,
  6.     l.appointmentDate,
  7.     e.firstName,
  8.     i.marketability,
  9.     IFNULL(s.monthlyIncome, 0.0) monthlyIncome
  10.     `todos_los_leads` AS tl
  11.         INNER JOIN
  12.     leads AS l ON tl.idperson = l.idPerson
  13.         INNER JOIN
  14.     empleados AS e ON tl.idEmployee = e.idEmployee
  15.         INNER JOIN
  16.     infonavit AS i ON tl.idInfonavit = i.idInfonavit
  17.         LEFT JOIN
  18.     shf AS s ON tl.idSHF = s.idSHF
  19. WHERE TRUE OR s.monthlyIncome IS NULL;

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:
Código MySQL:
Ver original
  1. SELECT a, b, c, d
  2. FROM tabla1
  3. SELECT a, b, c, d
  4. FROM tabla2;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)