ayuda con consulta sql

Iniciado por Mr.Blue, 10 Agosto 2011, 01:37 AM

0 Miembros y 1 Visitante están viendo este tema.

Mr.Blue

Código (sql) [Seleccionar]
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'.

Shell Root

No entiendo ese 1 para qué si estas haciendo el SELECT para las 5 carreras.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

bomba1990

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:
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

Mr.Blue

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

fran800m

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;