Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/04/2013, 15:14
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: Filtrar Campos mediante ID

Hola UNDR4:

Vayamos por partes: es conveniente que en lugar de hacer las uniones de las tablas en el FROM-WHERE utilices JOIN's... si tienes dudas en cuanto a como funcionan, puedes preguntarle a SAN GOOGLE o a Santa WIKIPEDIA:

http://es.wikipedia.org/wiki/Join

Código:
En lugar de hacer esto

FROM tabla1, tabla2 WHERE tabla1.campo = tabla2.campo

Haz esto:

FROM tabla1 INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
Segundo, en tu tabla tienes una doble referencia hacia el catálogo de años, por lo tanto es necesario que hagas un doble JOIN, utilizando un ALIAS:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM anios;
  2. +------+------+
  3. | id   | name |
  4. +------+------+
  5. |    1 | 2001 |
  6. |    2 | 2002 |
  7. |    3 | 2003 |
  8. +------+------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> SELECT * FROM productos;
  12. +------+----------+------------+------------+
  13. | id   | id_marca | anio_desde | anio_hasta |
  14. +------+----------+------------+------------+
  15. |    1 |        1 |          1 |          2 |
  16. |    2 |        2 |          1 |          3 |
  17. +------+----------+------------+------------+
  18. 2 rows in set (0.00 sec)
  19.  
  20. mysql> SELECT p.id, a1.name anio_desde, a2.name anio_hasta
  21.     -> FROM productos p
  22.     -> INNER JOIN anios a1 ON p.anio_desde = a1.id
  23.     -> INNER JOIN anios a2 ON p.anio_hasta = a2.id;
  24. +------+------------+------------+
  25. | id   | anio_desde | anio_hasta |
  26. +------+------------+------------+
  27. |    1 | 2001       | 2002       |
  28. |    2 | 2001       | 2003       |
  29. +------+------------+------------+
  30. 2 rows in set (0.00 sec)

Tercero, la palabra reservada AS es completamente obsoleta y ya no forma parte del estandar de SQL.

Finalmente, es recomendable que trates de dar formato a tus post's, utiliza las etiquetas de code (#) o los highlight, de esta manera tu texto será más claro.

Haz la prueba y nos comentas

Saludos
Leo.