Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Volviendome loco con los subqueries

Estas en el tema de Volviendome loco con los subqueries en el foro de Mysql en Foros del Web. Hola Tengo que hacer una consulta a una bd utilizando subqueries pero no logro obtener los resultados que necesito. Las tablas de la bd se ...
  #1 (permalink)  
Antiguo 22/09/2007, 06:34
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 5 meses
Puntos: 2
Volviendome loco con los subqueries

Hola
Tengo que hacer una consulta a una bd utilizando subqueries pero no logro obtener los resultados que necesito.
Las tablas de la bd se ven asi:
Tabla "actor"(este es un ejemplo, la tabla original tiene 200 lineas):

Código:
   actor_id       first_name         last_name
         1              Christian            Akroyd
         2              Johan                 Akroyd
         3              Mathias              Ericsson
         4              Richard              Gere
Tabla "film_actor":
Código:
         actor_id    film_id
            1              1
            2              10
            3              5
            4              9
Tabla "film" :
Código:
           film_id        title
              1            ACADEMY DINOSAUR
              2            ACE GOLDFINGER
              3            ADAPTATION HOLES
              4            AFFAIR PREJUDICE
              5            AFRICAN EGG
              6            AGENT TRUMAN
              7            AIRPLANE SIERRA
              8            AIRPORT POLLOCK
              9            ALABAMA DEVIL
             10           ALADDIN CALENDAR
Ahora lo que quiero obtener es el nombre, el apellido y el nombre de la pelicula en la que los actores con apellido "Akroyd" aparecen.
Para eso he intentado con este subquery:

Código:
 select title from film where film_id IN
	(select film_id from film_actor where actor_id IN
		(select actor_id from actor where last_name='Akroyd')
	);
Pero de esa manera solo obtengo el nombre de la pelicula, como lo hago para obtener tambien el nombre y apellido de los actores?

Gracias por la ayuda.
Americo
  #2 (permalink)  
Antiguo 24/09/2007, 04:27
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 19 años, 8 meses
Puntos: 12
Re: Volviendome loco con los subqueries

SELECT B.first_name, B.last_name, C.title
FROM film_actor A
LEFT JOIN actor B ON B.actor_id=A.actor_id
LEFT JOIN film C ON C.film_id=A.film_id
WHERE B.last_name='Akroyd'
ORDER BY B.last_name, B.first_name

Prueba esto, a ver...
  #3 (permalink)  
Antiguo 24/09/2007, 10:31
 
Fecha de Ingreso: noviembre-2002
Ubicación: Suecia
Mensajes: 253
Antigüedad: 21 años, 5 meses
Puntos: 2
Re: Volviendome loco con los subqueries

Cita:
Iniciado por Mahalo Ver Mensaje
SELECT B.first_name, B.last_name, C.title
FROM film_actor A
LEFT JOIN actor B ON B.actor_id=A.actor_id
LEFT JOIN film C ON C.film_id=A.film_id
WHERE B.last_name='Akroyd'
ORDER BY B.last_name, B.first_name

Prueba esto, a ver...
Con joins funciona, pero como hacerlo funcionar con subqueries??
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:38.