Ver Mensaje Individual
  #6 (permalink)  
Antiguo 07/03/2010, 15:36
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Cómo comprobar que un campo de una tabla exista en otra tabla?

Hay una cosa que me intriga: ¿No has definido ninguna FK en el campo ID_user de la tabla mensajes?
Si estás usando tablas MyISAM, se comprende, porque simplemente no se puede (MyISAM no soporta FK), pero si estás usando tablas InnoDB, deberías, porque de esa forma te aseguras que no existan mensajes sin usuarios.

Como sea, si aún no has definido una Fk que otorgue esa restricción, la solución entonces sería:
Código MySQL:
Ver original
  1. SELECT ID_msj
  2. FROM mensajes
  3. WHERE ID_user IS NULL OR ID_user = '';
  4.  
  5. DELETE FROM mensajes
  6. WHERE ID_msj IN
  7.    (SELECT ID_msj FROM msj_temp);

En el primer caso estoy suponiendo que pueden llegar a ingresarse mensajes con ID_user como vacíos y no como NULL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)