Problemas con clausula IN

Estoy teniendo un problema usando la clausula IN en MySQL. Investigando un poco me ha parecido entender que IN no se puede utilizar para comparar un campo con los valores devuelto en una consulta; sería algo así:
SELECT * FROM tabla WHERE campo IN
(SELECT * FROM otratabla WHERE otro_campo=valor)
¿Existe otra forma de realizar la misma consulta? ¿Alguien me puede ayudar? ¡Es urgente, mi nota depende de eso! Gracias :D

1 Respuesta

Respuesta
1
Me temo que de momento MySql no admite el empleo de subconsultas. Pero con lo que tu has puesto tp funcionaria, la subconsulta te tiene que devolver el mismo numero de campos y del mismo tipo que los campos con los que comparas.
De todas lo podrías hacer mediante un join:
select tabla1.campo1, tabla1.campo2 from tabla1, tabla2 where tabla1.campo2=tabla2.campo1 and tabla2.campo2=valor;
Si, le he estado dando vueltas pero es imposible hacerlo mediante un join natural (no estoy seguro de si se llama así), o al menos no he conseguido como darle vueltas... necesitaría alguna otra forma de hacerlo, si es posible (estoy desesperado, pero gracias por contestar al menos)
A esto si que se le llama join. ¿Pq es imposible hacerlo con un join? Si me dijeras exactamente como son las tablas y que es exactamente lo que necesitas igual te echo una mano.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas