Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Proponer
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Nick


Contraseña


Nuevo usuario


English
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Eliminación de registros masiva con filtro y varias tablas
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Eliminación de registros masiva con filtro y varias tablas

Publicar nuevo tema Responder al tema
Foros de discusión » MySQL Server, MySQL Client, motor de bd gratuito   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Eliminación de registros masiva con filtro y varias tablas Responder citando

Quisiera saber qué consulta SQL tengo que ejecutar en MySQL para eliminar varios registros de una tabla que cumplan una determinada condición (hasta aquí no hay problema) y que, además haya varias tablas implicadas, por ejemplo para un inner join.

Tengo las siguientes tablas:

* criteriosspam - tabla de la que hay que eliminar los registros.

* aplicacionreglaalm - tabla relacionada con la anterior por el campo "idregla", la que quiero utilizar para el inner join.

y quiero hacer un enlace con el campo "id" de la tabla criteriosspam y el campo "idregla" de la tabla aplicacionreglaalm".

y filtrar por una fecha inferior a la introducida por el usuario, el campo de la fecha es de la tabla "aplicacionreglaalm", se llama "fechaultima".
MensajePublicado:
Mie Oct 25, 2006 12:22 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Eliminación de registros masiva con filtro y varias tabl Responder citando



Anuncios



Dependerá de la versión de MySQL que utilices, si utilizas una versión igual o superior a la 4.1 puedes utilizar esta consulta SQL:

Código:

DELETE FROM c USING criteriosspam AS c, aplicacionreglaalm AS a  WHERE c.id = a.idregla AND a.fechaultima < :fechaIntroducidaUsuario


Si utilizas Delphi, te muestro un ejemplo de cómo sería utilizando un TQuery:

Código:

procedure ...
var
  hastaFecha : string;
  hastaFechaF : TDateTime;
begin
  ...
  hastaFecha := InputBox('Fecha', 'Introduzca la fecha:', datetostr(now));
  hastaFechaF := strtodate(hastaFecha);

  tc.Close;
  tc.SQL.Clear;
  tc.SQL.Add('delete from c using criteriosspam as c, aplicacionreglaalm as a ');
  tc.SQL.Add('  where c.id = a.idregla and a.fechaultima < :pFecha');
  tc.ParamByName('pFecha').DataType := ftDateTime;
  tc.ParamByName('pFecha').AsDateTime := hastaFechaF;
  tc.ExecSQL;

  ...
end;
MensajePublicado:
Mie Oct 25, 2006 12:29 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » MySQL Server, MySQL Client, motor de bd gratuito  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+