Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/07/2013, 03:26
waspeis
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 10 años, 10 meses
Puntos: 0
Ordenar una consulta

Buenas compañeros, os planteo lo siguiente...

Tengo una tabla (actores) que almacena actores (id_ac, nombre y apellidos), otra tabla (películas) que almacena películas (id_pel, título, fechaestreno) y una tabla (pelisactores) que utilizo para relacionar los actores que trabajan en una película (id_pelac, id_pel, id_ac)

Quiero saber los actores que trabajan en una película

Supongamos que tenemos almacenados en la tabla actores a:
Robert De Niro (id_ac: 15)
Jason Statham (id_ac: 21)
Clive Owen (id_ac: 22)

Y en la tabla pelisactores tenemos:
(id_pelac: 31, id_pel: 10, id_ac:21)
(id_pelac: 32, id_pel: 10, id_ac:22)
(id_pelac: 33, id_pel: 10, id_ac:15)

Si quiero saber los actores que trabajan en una película (en este ej. la película con id_pel: 10) realizo la siguiente consulta:
"SELECT id_ac FROM pelisactores WHERE id_pel = 10"
y así obtengo que los actores que trabajan en esa película son 21, 22 y 15 (Jason, Clive y Robert) por ese orden, ya que se ordenan por id_pelac (31, 32 y 33)

Si quiero obtener directamente los nombres de los actores que trabajan en la película, realizo la siguiente consulta:
"SELECT id_ac, nombre, apellidos FROM actores WHERE id_ac IN
(SELECT id_ac FROM pelisactores WHERE id_pel = 10)"
y así obtengo los nombres de los actores que son 15, 21 y 22 (Robert, Jason y Clive) por este orden, ya que se ordenan por id_ac

Quisiera mantener el orden de la subconsulta en el resultado final, es decir, quiero que se muestren los actores por este orden: Jason, Clive y Robert

¿Se puede hacer en una consulta SQL?

Gracias