Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/08/2016, 08: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: Consulta SQL sobre dos tablas

Hola jona86:

El día de ayer se presentó una pregunta similar en este foro:

http://www.forosdelweb.com/f86/consu...acion-1154459/

En tu caso pasa lo mismo, al hacer el JOIN, echas a perder el filtro de la edad... y la solución es la misma, aplicar una condición IN o EXISTS con una subconsulta para los ciclistas de 23 años, algo así:

Código:
SELECT a.ciclista, a.anio, a.puntos, b.id 
FROM ciclismofem_ranking a 
INNER JOIN ciclismofem_ciclistas b ON a.ciclista = b.id  
WHERE
  a.anio=$temporada AND 
  a.ciclista IN (Aquí seleccionas a los ciclistas que tengan 23 años)
ORDER BY puntos DESC
haz la prueba y nos comentas. Si continuas con problemas postea cuál es la estructura de tus tablas y pon algunos datos de ejemplo y con gusto te ayudamos a resolver el problema.

y finalmente, puedes observar que hice algunos cambios adicionales en tu consulta, como recomendaciones:

1. No hagas JOINS implícitos, sino utiliza los JOIN's (LEFT, RIGTH o INNER según sea el caso) de manera explícita, es decir

En lugar de esto:

Código:
...
FROM tabla1, tabla2 
WHERE tabla1.campo = tabla2.campo
...
Haz esto

Código:
...
FROM tabla1
INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
...
2. No es necesario que pongas tantos paréntesis, ya que en tu caso son todos completamente inútiles.

3. La palabra reservada AS también es completamente inútil y sólo se conserva por cuestiones de compatibilidad, pero no es necesario ponerla para especificar un alias.

Saludos
Leo.