Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/05/2013, 10:03
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: Productos y gastos de envio

Es que lo que estás haciendo es mezclar caballos con manzanas. Esas tablas no están relacionadas, porque una es una tabla de pedidos de envío y la otra es una tabla paramétrica, de donde surgen los costos de envío. Pero no hay una relación entre la PK de ambas y por tanto no sirven para hacer un JOIN.
De todos modos se puede, pero forzosamente tienes que generar un producto cartesiano para obtener lo que quieres, y además a esa tabla de "envios" le está faltando el límite inferior o superior del rango para ser útil.
Es decir, cuando planteas una tabla de parámetros semejantes, donde estableces un límite de peso para un precio dado, debes incluir ambos límites: Desde qué peso y hasta qué peso. De lo contrario la consulta se complica.
La idea es que se pueda hacer algo como:
Código MySQL:
Ver original
  1. SELECT p.*,k.coste
  2. FROM productos p, transporte k
  3. WHERE p.peso BETWEEN k.pesodesde AND k.pesohasta

El problema de esta consulta es que MYSQL intentará hacer un matching entre los "ID" de las tablas porque tienen el mismo nombre, por lo que el resultado final puede ser completamente erróneo.

En realidad, la solución correcta es a través de otro tipo de diseño de datos. Es decir, el modelo que aplicas no es útil para lo que quieres, porque no está correctamente diseñado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)