Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/04/2012, 13:12
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Problema con consulta iiner join

Hola mega0079:

Qué criterio es el que utilizas para unir tus tablas papel y/o papel_cotizado con tu tabla tamanios_cotizados?... es decir, para unir las primeras tablas utilizas el campo id_papel, pero para unir la tabla tamanios_cotizados qué campo(s) debes considerar.

A primera vista podría pensar en usar el campo id_cotización, sin embargo, este campo NO ES CAMPO UNICO o campo llave... en la tabla tamanios_cotizados hay dos registros con el valor id_cotizacion = 12. De la misma manera, en tu tabla papeles_cotizados hay dos registros con el campo id_cotizacion = 12. Si se utilizara este campo para unir las tablas tendrías algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tamanios_cotizados;
  2. +------+---------------+-----------+---------+------------+
  3. | id   | id_cotizacion | tam_final | tam_ext | aplicacion |
  4. +------+---------------+-----------+---------+------------+
  5. |   28 |            12 | 12X15     | 15X52   | forros     |
  6. |   29 |            12 | 15X41     | 15X85   | interiores |
  7. +------+---------------+-----------+---------+------------+
  8. 2 rows in set (0.07 sec)
  9.  
  10. mysql> SELECT * FROM papel_cotizado;
  11. +------+----------+------------+---------------+--------------+
  12. | id   | id_papel | aplicacion | id_cotizacion | peso_calibre |
  13. +------+----------+------------+---------------+--------------+
  14. |    2 |      145 | uno papel  |            12 | 68grs/       |
  15. |    3 |      145 | dos papel  |            12 | 200grs/      |
  16. +------+----------+------------+---------------+--------------+
  17. 2 rows in set (0.00 sec)
  18.  
  19. mysql> SELECT * FROM papeles;
  20. +----------+------------------+
  21. | id_papel | descripcion      |
  22. +----------+------------------+
  23. |      145 | Bond             |
  24. |      146 | Couche Brillante |
  25. +----------+------------------+
  26. 2 rows in set (0.00 sec)
  27.  
  28. mysql> SELECT
  29.     -> papeles.id_papel,
  30.     -> papeles.descripcion,
  31.     -> papel_cotizado.aplicacion,
  32.     -> papel_cotizado.id_cotizacion,
  33.     -> papel_cotizado.peso_calibre,
  34.     -> tamanios_cotizados.tam_final
  35.     -> FROM
  36.     -> papeles
  37.     -> INNER JOIN papel_cotizado ON papel_cotizado.id_papel = papeles.id_papel
  38.     -> INNER JOIN tamanios_cotizados ON
  39.     -> papel_cotizado.id_cotizacion =  tamanios_cotizados.id_cotizacion;
  40. +----------+-------------+------------+---------------+--------------+-----------+
  41. | id_papel | descripcion | aplicacion | id_cotizacion | peso_calibre | tam_final |
  42. +----------+-------------+------------+---------------+--------------+-----------+
  43. |      145 | Bond        | uno papel  |            12 | 68grs/       | 12X15 |
  44. |      145 | Bond        | dos papel  |            12 | 200grs/      | 12X15 |
  45. |      145 | Bond        | uno papel  |            12 | 68grs/       | 15X41 |
  46. |      145 | Bond        | dos papel  |            12 | 200grs/      | 15X41 |
  47. +----------+-------------+------------+---------------+--------------+-----------+
  48. 4 rows in set (0.00 sec)


Es decir, se estaría realizando un producto cartesiano entre tus tablas. Verifica entonces si hay algún otro campo para relacionar esta tablas.

Saludos
Leo.