Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/04/2012, 07:56
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Consulta variables dependientes en una tabla

Hola vcarr:

En tu consulta no estás definiendo ninguna relación entre tus tablas tabla1 y fotos, por lo tanto se está realizando un PRODUCTO CARTESIANO entre estas dos tablas.

Checa este script:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla1;
  2. +------+-------------+
  3. | id   | descripcion |
  4. +------+-------------+
  5. |    1 | uno         |
  6. |    2 | dos         |
  7. |    3 | tres        |
  8. +------+-------------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> SELECT * FROM tabla2;
  12. +------+-------------+
  13. | id   | descripcion |
  14. +------+-------------+
  15. |    1 | one         |
  16. |    2 | two         |
  17. |    3 | three       |
  18. +------+-------------+
  19. 3 rows in set (0.02 sec)
  20.  
  21. mysql> SELECT * FROM tabla1, tabla2;
  22. +------+-------------+------+-------------+
  23. | id   | descripcion | id   | descripcion |
  24. +------+-------------+------+-------------+
  25. |    1 | uno         |    1 | one         |
  26. |    2 | dos         |    1 | one         |
  27. |    3 | tres        |    1 | one         |
  28. |    1 | uno         |    2 | two         |
  29. |    2 | dos         |    2 | two         |
  30. |    3 | tres        |    2 | two         |
  31. |    1 | uno         |    3 | three       |
  32. |    2 | dos         |    3 | three       |
  33. |    3 | tres        |    3 | three       |
  34. +------+-------------+------+-------------+
  35. 9 rows in set (0.00 sec)
  36.  
  37. mysql> SELECT * FROM tabla1 INNER JOIN tabla2 ON tabla1.id = tabla2.id;
  38. +------+-------------+------+-------------+
  39. | id   | descripcion | id   | descripcion |
  40. +------+-------------+------+-------------+
  41. |    1 | uno         |    1 | one         |
  42. |    2 | dos         |    2 | two         |
  43. |    3 | tres        |    3 | three       |
  44. +------+-------------+------+-------------+
  45. 3 rows in set (0.00 sec)
  46.  
  47. mysql> SELECT * FROM tabla1, tabla2 WHERE tabla1.id = tabla2.id;
  48. +------+-------------+------+-------------+
  49. | id   | descripcion | id   | descripcion |
  50. +------+-------------+------+-------------+
  51. |    1 | uno         |    1 | one         |
  52. |    2 | dos         |    2 | two         |
  53. |    3 | tres        |    3 | three       |
  54. +------+-------------+------+-------------+
  55. 3 rows in set (0.00 sec)

En la tercer consulta se observa lo que es un producto cartesiano, al no definir una relación entre las tablas 1 y 2, CADA ELEMENTO DE LA TABLA1 SE RELACIONA CON TODOS Y CADA UNO DE LOS ELEMENTOS DE LA TABLA2, esto mismo esta sucediendo en tu consulta. En el script se muestran dos formas de relacionar tablas, la primera y que es la que recomiendo es utilizando JOIN's (si no sabes cómo funcionan los tipos de join's pregúntale a Santa Wikipedia.

Saludos
Leo.