Hola loncho_rojas:
Este tipo de consultas la hemos tratado infinidad de veces en el foro, te recomiendo que cuando tengas alguna duda te tomes un momento para utilizar la herramienta de búsqueda para ver si hay algo publicado que te pueda servir, o que le preguntes a San GOOGLE, el generalmente tiene la respuesta a muchas de las preguntas de los foristas.
Al tener una doble referencia hacia una misma tabla, lo que debes hacer es un doble JOIN, utilizando un alias distinto para cada caso, sería así:
Código MySQL:
Ver originalmysql
> SELECT j.jornada
, e1.equipo
, e2.equipo
-> INNER JOIN jornadas j
ON j.id_jornada
= p.id_jornada
-> WHERE p.id_jornada
= 1;
+---------+-----------+---------------+
| jornada | equipo | equipo |
+---------+-----------+---------------+
| Fecha
1 | BARCELONA
| REAL MADRID
| | Fecha 1 | AC MILAN | BAYERN MUNICH |
+---------+-----------+---------------+
En cuanto a tu consulta, cabría hacer algunas recomendaciones:
1. La palabra reservada "AS" es completamente obsoleta, de hecho ya no es recomendada dentro de las mejores prácticas de SQL.
2. Evita hacer las uniones entre las tablas en el FROM-WHERE, en lugar de eso utiliza los JOIN's (LEFT, RIGTH, INNER según corresponda), si tienes dudas de como trabajan preguntale a
Santa Wikipedia
En lugar de hacer esto:
Código:
FROM tabla1, tabla2 WHERE tabla1.campo = tabla2.campo
Has esto:
FROM tabla1 INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
En tu ejemplo sólo estás haciendo la unión entre tus tablas jornadas y partidos, pero también incluyes la tabla de equipos, por lo tanto se realiza un PRODUCTO CARTESIANO entre tus tablas.
El uso de los JOIN's además de ser más eficiente te ayuda a evitar justamente este tipo de errores.
3. Finalmente, dices que el resultado debería ser
REAL MADRID vs BAYERN MUNICH
BARCELONA vs AC MILAN
Pero observa los datos, para la fecha 1 juegan Real Madrid VS Barcelona, ese es un problema con los datos...
Saludos
Leo.