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

Comparar campos de 2 tablas y borrar los registros de una de ellas

Estas en el tema de Comparar campos de 2 tablas y borrar los registros de una de ellas en el foro de Mysql en Foros del Web. Soy nuevo en esto de MySQL y ahora tengo este problema: Tengo TABLA1 con campos apellido_paterno, apellido_materno, nombre y fecha_nacimiento, y TABLA2 con los mismos ...
  #1 (permalink)  
Antiguo 16/06/2009, 13:06
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Comparar campos de 2 tablas y borrar los registros de una de ellas

Soy nuevo en esto de MySQL y ahora tengo este problema:

Tengo TABLA1 con campos apellido_paterno, apellido_materno, nombre y fecha_nacimiento, y TABLA2 con los mismos campos, tengo que comparar ambas tablas para que aquellos que sean iguales se borren de TABLA1.

Utilizo MySQL 5.1

Me podrían ayudar....

Muchas gracias
  #2 (permalink)  
Antiguo 16/06/2009, 13:18
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Comparar campos de 2 tablas y borrar los registros de una de ellas

Asumo que las tablas no tienen un campo id que represente el registro.

prueba esto:

Código sql:
Ver original
  1. DELETE FROM tabla1 WHERE (apellido_paterno, apellido_materno, nombre,fecha_nacimiento)
  2. IN(SELECT apellido_paterno, apellido_materno, nombre,fecha_nacimiento FROM tabla2);

Si hubiera un id que identifica a cada usuario, solo se haría referencia a ese campo.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 17/06/2009, 07:27
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Comparar campos de 2 tablas y borrar los registros de una de ellas

Existe un ID en cada una de las tablas, pero no tienen nada en común entre ellas
  #4 (permalink)  
Antiguo 17/06/2009, 08:04
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Comparar campos de 2 tablas y borrar los registros de una de ellas

¿Tienes que comparar dos tablas con la misma estructura, los mismos nombres de campos y cuyos ID no están relacionados?
Para verificar su igualdad tendrás que comparar campo a campo...

¿De dónde surge la segunda tabla?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 17/06/2009, 09:11
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Comparar campos de 2 tablas y borrar los registros de una de ellas

ese es el problema, que no tienen la misma estructura, los unicos campos en ambas tablas son los que se mencionan (apellido_paterno, apellido_materno, nombre y fecha_nacimiento)... la idea es juntar las dos tablas en una sola, pero que no se repitan los registros que sean iguales los campos (apellido_paterno, apellido_materno, nombre y fecha_nacimiento) en las 2 tablas
  #6 (permalink)  
Antiguo 17/06/2009, 09:47
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Comparar campos de 2 tablas y borrar los registros de una de ellas

Si tienes dos tablas que sólo se relacionan en apellido_paterno, apellido_materno, nombre y fecha_nacimiento, esa sería la clave de un JOIN, pero en ese caso, ¿de cuál de las dos tablas descartas los registros?
Si sólo quieres los que coincidan, entonces habrá en las dos registros no coincidentes que se eliminarán de la muestra.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 30/06/2009, 08:40
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Comparar campos de 2 tablas y borrar los registros de una de ellas

Gracias a Ambos por la ayuda, y perdonen la tardanza, pero no estaba en mi lugar de trabajo, eso me ayudo a pensar un poco mas jeje... lo reolví de la siguiente manera....

DELETE Tabla1 FROM TAbla1, Tabla2 WHERE Tabla1.AP_PATERNO = Tabla2.AP and Tabla1.AP_MATERNO = Tabla2.AM and Tabla1.NOMBRE = Tabla2.NOMBRE and Tabla1.FECHA_NAC = Tabla2.FNACIMIENTO;

por lo que dejo el tema cerrado
  #8 (permalink)  
Antiguo 07/09/2010, 11:21
 
Fecha de Ingreso: febrero-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Comparar campos de 2 tablas y borrar los registros de una de ellas

Buenas tal vez tambien les sirva este codigo
paso a explicarlo
tengo dos tablas tabla1 y tabla2

en mi caso borro los regitros de la tabla2 que no esten presentes en la tabla 1

Código:
delete tabla2
FROM tabla2 LEFT OUTER JOIN tabla1
   ON tabla2.a_nc = tabla1.ALUCTR
where tabla1.ALUCTR is null
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 10:14.