Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/12/2011, 10:46
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: consultar de un catalogo

Hola de nuevo mega0079:

El planteamiento que das en tu segundo post es muy diferente al del primer post, así es que vayamos por partes.

En tu modelo de BD, la tabla PARTIDOS tiene una doble referencia hacia la tabla equipos, ya que tanto el campo LOCAL como el campo VISITANTE hacen referencia hacia el mismo campo de la misma tabla, pero a registros diferentes. Lo que tienes que hacer entonces es un DOBLE INNER JOIN a tu tabla equipos utilizando un ALIAS, uniendo cada uno de los campos por separado. Checa este script:

Código MySQL:
Ver original
  1. mysql> CREATE TABLE equipos (id_equipo INT, n_equipo VARCHAR(20));
  2. Query OK, 0 rows affected (0.09 sec)
  3.  
  4. mysql> INSERT INTO equipos VALUES (5, 'manchester'), (6, 'arsenal');
  5. Query OK, 2 rows affected (0.05 sec)
  6. Records: 2  Duplicates: 0  Warnings: 0
  7.  
  8. mysql> SELECT * FROM equipos;
  9. +-----------+------------+
  10. | id_equipo | n_equipo   |
  11. +-----------+------------+
  12. |         5 | manchester |
  13. |         6 | arsenal    |
  14. +-----------+------------+
  15. 2 rows in set (0.00 sec)
  16.  
  17. mysql> CREATE TABLE partidos (local INT, visitante INT);
  18. Query OK, 0 rows affected (0.13 sec)
  19.  
  20. mysql> INSERT INTO partidos VALUES (5, 6);
  21. Query OK, 1 row affected (0.05 sec)
  22.  
  23. mysql> SELECT * FROM partidos;
  24. +-------+-----------+
  25. | local | visitante |
  26. +-------+-----------+
  27. |     5 |         6 |
  28. +-------+-----------+
  29. 1 row in set (0.00 sec)
  30.  
  31. mysql> SELECT E1.n_equipo LOCAL, E2.n_equipo VISITANTE
  32.     -> FROM partidos p
  33.     -> INNER JOIN equipos E1 ON E1.id_equipo = p.local
  34.     -> INNER JOIN equipos E2 ON E2.id_equipo = p.visitante;
  35. +------------+-----------+
  36. | LOCAL      | VISITANTE |
  37. +------------+-----------+
  38. | manchester | arsenal   |
  39. +------------+-----------+
  40. 1 row in set (0.00 sec)

Observa que la tabla EQUIPOS se define dos veces, con los alias E1 y E2. cada una de ellas se liga a uno de los campos de tu tabla PARTIDOS.

Dale un vistazo y nos comentas.
Leo.