select a.nombre_animal, j.id_jugador, c.id_carrera from animal as a inner join jugador as j on( a.id_animal=j.id_animal)
inner join carrera as c on (c.id_jugador=j.id_jugador)
where c.id_carrera=1 (select top 5 * from carrera)
order by posc;
Lo que hace esta consulta es darme el nombre e id del jugador y quiero obtener un top 5 de los primeros 5 jugadores, me tira error en el in cuando ago where c.id_carrera=1.
Incorrect syntax near the keyword 'in'.
No entiendo ese 1 para qué si estas haciendo el SELECT para las 5 carreras.
SELECT a.nombre_animal, j.id_jugador, c.id_carrera FROM animal AS a INNER JOIN jugador AS j ON( a.id_animal=j.id_animal)
INNER JOIN carrera AS c ON (c.id_jugador=j.id_jugador)
WHERE c.id_carrera in (SELECT top 5 * FROM carrera)
ORDER BY posc;
NO deberia ser asi?? :huh:
por que mi primary key no es auto incrementable visualmente mi tabla es asi
id_carrera id_jugador posicion
1 1 3
1 2 1
1 3 2
1 4 4
SELECT top 5 a.nombre_animal, j.id_jugador, c.id_carrera FROM animal AS a INNER JOIN jugador AS j ON( a.id_animal=j.id_animal)
INNER JOIN carrera AS c ON (c.id_jugador=j.id_jugador)
WHERE c.id_carrera=1
ORDER BY posc;
Creo que lo que quieres es ésto, tu consulta me extraña mucho, no tiene in y ademas para usar un in no puedes usar asterisco, sino el campo concreto.
Si usas MySQL sería
SELECT a.nombre_animal, j.id_jugador, c.id_carrera FROM animal AS a INNER JOIN jugador AS j ON( a.id_animal=j.id_animal)
INNER JOIN carrera AS c ON (c.id_jugador=j.id_jugador)
WHERE c.id_carrera=1
ORDER BY posc limit 5;