Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/03/2011, 09:45
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: Duda con LEFT JOIN

Cuesta un poco entender la idea de qué es lo que representa cada cosa, pero mi pregunta es: SI la tabla principal es web_cal_entry y su PK es cal_id, ¿no sería suficiente con ese WHERE?:
Código SQL:
Ver original
  1. WHERE e.cal_id = 300
Porque solamente estaría devolviendo un registro, y en todo caso, si ese registro termina vinculado a más de un registro de las tablas webcal_company, webcal_client y webcal_close_entry, ¿no deberías estar agrupando por esa PK y no por una que puede dar duplicidades?
Algo como:
Código MySQL:
Ver original
  1.    e.cal_id,
  2.    e.cal_cliente,
  3.    CONCAT(cl.cal_nombre1,' ',cl.cal_apellido1,' ',cl.cal_apellido2)   cal_cliente_nombre,
  4.    e.cal_empresa,
  5.    c.cal_nombre  cal_empresa_nombre,
  6.    e.cal_estado,
  7.    e.cal_create_by,
  8.    CONCAT(u.cal_lastname,' ', u.cal_firstname)  cal_creador,
  9.    e.cal_date,
  10.    e.cal_time,
  11.    e.cal_name,
  12.    e.cal_location,
  13.    e.cal_description,
  14.    ce.cal_entry calcal_close_entry
  15.    webcal_entry e INNER JOIN webcal_user u ON u.cal_login = e.cal_create_by
  16.    LEFT JOIN webcal_company c ON c.cal_company_id = e.cal_empresa
  17.    LEFT JOIN webcal_client cl ON cl.id_cliente = e.cal_cliente
  18.    LEFT JOIN webcal_close_entry ce ON e.cal_id = ce.cal_entry
  19.    e.cal_id = 300
  20. GROUP BY e.cal_id;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)