Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/11/2009, 12:16
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 consulta usando JOIN

Cita:
¿Que estoy haciendo mal en la consulta?
Como mínimo, invocando tres veces la misma tabla para traer de cada uno un campo diferente, con lo que se puede estar formando un producto cartesiano.
Si los tres campos están en la misma tabla, y la tabla la vinculas por un sólo valor ¿para qué la invocas tres veces?
Además, el JOIN no es suficientemente discriminatorio. En tu caso es mejor usar INNER JOIN:
Código SQL:
Ver original
  1. SELECT
  2.   eg.numero_guia_servicio,
  3.   eg.fecha_guia,
  4.   CONCAT(c.rut_cliente,"-",c.dv_cliente),
  5.   eg.id_contrato_cliente,
  6.   re.descripcion_relleno_sanitario,
  7.   eg.numero_ticket_relleno,
  8.   est.descripcion_estado_guia,
  9.   cg1.numero_linea,
  10.   cg1.cantidad,
  11.   cg1.volumen
  12. FROM encabezado_guia_servicio eg
  13.   INNER JOIN cliente c USING(rut_cliente)
  14.   INNER JOIN relleno_sanitario re USING(id_relleno_sanitario)
  15.   INNER JOIN estado_guia_servicio est USING(id_estado_guia)
  16.   INNER JOIN cuerpo_guia_servicio cg1 USING(numero_guia_servicio);
En este ejemplo uso USING en lugar de ON, porque como los campos en ambas tablas tienen el mismo nombre, funciona mejor USING.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)