Ver Mensaje Individual
  #8 (permalink)  
Antiguo 29/03/2018, 06:28
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, 4 meses
Puntos: 2658
Respuesta: El left join me duplica los datos

A mi entender, el primer problema que tienes es que estás creando en la primera query una relación en estrella, algo que es muy proclive a generar productos cartesianos, lo que parece ser el caso.
En realidad la solución mas adecuada pasaría porque vincules correctamente la secuencia de relaciones a partir de la primera tabla (STOCK), pero encadenando no la primera con todas, sino la primera con la segunda, la segunda con la tercera y así sucesivamente.

Ahora bien, en estos casos lo que debes entender es que si bien la tabla madre de la consulta puede necesitarse para mostrar TODOS los casos sin importar si existen relaciones o no con la segunda tabla, no es natural que de existir entre ambas, la segunda no tenga relaciones con la tercera y asi sucesivamente.

A lo que me refiero es que si tienes las tablas:

Cita:
stock
proveedores
cat
bodega
oc
servicios
No resulta creíble que puedas tener productos sin sus correspondientes proveedores, o stock que no esté asignado a determinadas bodegas. Tal vez tengas productos no categorizados, pero ¿productos sin proveedor?

A lo que voy es que no todos los JOIN puede que sean LEFT. Algunos es posible que correspondan ser INNER, y eso marca una gran diferencia.

De todos modos, si quieres un análisis mas preciso de tu query, necesitamos que nos aportes algunas cosas mas:
1) El CREATE TABLE de cada una, para entender las relaciones entre ellas, que no parecen muy razonables en esta query del primer post.
2) Un ejemplo o muestra de los datos reales de CADA UNA de las tablas, para visualizar como van a salir los datos y se relacionarán.
3) Un ejemplo de cómo debería salir la respuesta de la query, segun lo que necesitas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)