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

Problema con "IN" en una consulta

Estas en el tema de Problema con "IN" en una consulta en el foro de Mysql en Foros del Web. El problema es el siguiente Tengo dos tablas: Usuarios: que es una tabla con los usuarios del sistema y que tiene un campo que les ...
  #1 (permalink)  
Antiguo 31/08/2006, 09:45
 
Fecha de Ingreso: julio-2004
Ubicación: Valladolid
Mensajes: 46
Antigüedad: 19 años, 9 meses
Puntos: 0
Problema con "IN" en una consulta

El problema es el siguiente
Tengo dos tablas:
Usuarios: que es una tabla con los usuarios del sistema y que tiene un campo que les identifica que se llama `id`
MP_Privados: que es una tabla que almacena los mensajes privados que se han mando entre los usurios, y tiene un campo que se llama `Destino` que es el id del usuario destinatario del mensaje
Quiero seleccionar aquellos mensajes cuyo destinatario este en la lista de usuarios, y para eso hago esta consulta

SELECT *
FROM `MP_Mensajes`
WHERE `Destino` IN (SELECT `id` FROM `Usuarios`)

Pero algo debo estar haciendo mal porque la consulta me da este error

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT `id`
FROM `Usuarios` )


La verdad es que no se como hacerlo. Tambien he probado con "EXITS" y me ha dado un error similar.

Gracias
  #2 (permalink)  
Antiguo 31/08/2006, 12:31
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Tu versión de mysql no soporta subconsultas, instala una mas reciente o usa otro metodo para lograr lo mismo, en la documentacion de mysql se sugiero el uso de join.

dev.mysql.com/doc
  #3 (permalink)  
Antiguo 10/09/2006, 23:56
Avatar de CarlosMex  
Fecha de Ingreso: mayo-2005
Mensajes: 67
Antigüedad: 18 años, 11 meses
Puntos: 0
Se me ocurre esto

Código:
SELECT *
FROM `MP_Mensajes AS msg, Usuarios AS us`
WHERE `msg.Destono=us.id`
Donde en FROM de indicas que seleccione los datos de ambas tablas dándole un nómbre cualquiera a tus tablas: "msg" a MP_Mensajes y "us" a Usuarios. Pudo haber sido cualquier otro nombre, no importa, siempre y cuando lo identifique.

Posteriormente en WHERE le dices que seleccione donde el dato del campo "Destino" de la tabla "msg", sea igual al campo "id" de la tabla "us".

Espero te sirva.
__________________
CarlosMex
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 02:33.