• Sábado 21 de Diciembre de 2024, 17:39

Autor Tema:  Error Subconsulta Mysql  (Leído 1443 veces)

ferlucas

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Error Subconsulta Mysql
« en: Viernes 19 de Agosto de 2005, 18:15 »
0
Voy a tratar de ser lo más claro posible.

Para que tengan una idea, estoy hacien un sistema para registrar películas. En cuestión, tengo 3 bases de datos: movies, reparto y actores.
La BD reparto tiene los campos id_movie e id_actor. La BD actores tiene los campos id_actor y descripción.

Lo que quiero hacer, y me estoy equivocando, es hacer una consulta que me traiga solamente las peliculas en las que trabaje un determinado actor. La consulta que hago es la siguiente:

SELECT movies.* FROM movies WHERE movies.id IN (SELECT DISTINCT(reparto.id_movie) FROM reparto INNER JOIN actores ON reparto.id_actor=actores.id_actor WHERE actores.descripcion LIKE '%Smith%');

Estoy cometiendo un error. Sino, no me daría error. Pero como recién estoy empezando con esto de las subconsultas, no encuentro como solucionarlo.
Si alguien me puede dar una mano, sera agradecida.
Saludos.

- "Si no eres parte de la solución... eres parte del problema."

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Error Subconsulta Mysql
« Respuesta #1 en: Domingo 21 de Agosto de 2005, 17:19 »
0
hacerlo por subconsultas es posible, pero podria traer un impacto de performance...
lo que debes hacer es un join mira:

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]select[/color] m.id_movie,m. movie_name
from movie m, reparto r, actor a
where m.id_movie = r.id_movie and r.id_actor = a.id_actor and actor.descripcion like '%Smith%'
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

y en el caso puntual de la subconsulta seria:

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] * FROM movies WHERE id IN (
                     [color=blue;font-weight]SELECT[/color] DISTINCT r.id_movie
                     FROM reparto r, actores a
                     where r.id_actor=a.id_actor
                     a.descripcion LIKE '%Smith%');

<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io