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

Combianar dos tablas en una nueva

Estas en el tema de Combianar dos tablas en una nueva en el foro de Mysql en Foros del Web. Buenas tengo dos tablas iguales en todo salvo en los datos, necesito comparar los datos de ambas y generar una tercera tabla que contenga los ...
  #1 (permalink)  
Antiguo 16/02/2010, 13:23
 
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 15 años, 1 mes
Puntos: 0
Combianar dos tablas en una nueva

Buenas tengo dos tablas iguales en todo salvo en los datos, necesito comparar los datos de ambas y generar una tercera tabla que contenga los datos comunes de ambas y los datos que las diferencian.

Las tres tablas tienen los mismo campos.
  #2 (permalink)  
Antiguo 16/02/2010, 13:42
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: Combianar dos tablas en una nueva

Unelas con inner join y vacía la consulta a la nueva tabla.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 16/02/2010, 14:53
 
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Combianar dos tablas en una nueva

Intente hacer el inner join pero no me da ningun resultado y si cambio el operador por <> entonces si me saca un monton de resultados. Una de las tablas tiene 1020 registros y la otra 1017.

SELECT *
FROM publicaciones
INNER JOIN publicaciones1 ON ('publicaciones.titulo' = 'publicaciones1.titulo')
  #4 (permalink)  
Antiguo 16/02/2010, 14:55
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: Combianar dos tablas en una nueva

danos un poco mas de datos de las tablas.
Pon la estructura para poder darte una mejor ayuda.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 16/02/2010, 15:01
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: Combianar dos tablas en una nueva

Si ambas tablas tienen la misma estructura y distribución de campos:
Código MySQL:
Ver original
  1. FROM publicaciones
  2. FROM publicaciones1;

UNION, en este caso realiza una unión (encadenamiento) de ambas tablas eliminando los registros repetidos.
Nota: En este caso, los registros deben ser absolutamente distintos, o de lo contrario se incluiran cuando haya diferencias menores (ver Sintaxis de UNION).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 16/02/2010, 15:07
 
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Combianar dos tablas en una nueva


  #7 (permalink)  
Antiguo 16/02/2010, 15:18
 
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Combianar dos tablas en una nueva

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si ambas tablas tienen la misma estructura y distribución de campos:
Código MySQL:
Ver original
  1. FROM publicaciones
  2. FROM publicaciones1;

UNION, en este caso realiza una unión (encadenamiento) de ambas tablas eliminando los registros repetidos.
Nota: En este caso, los registros deben ser absolutamente distintos, o de lo contrario se incluiran cuando haya diferencias menores (ver [URL="http://dev.mysql.com/doc/refman/5.0/es/union.html"]Sintaxis de UNION[/URL]).
Gracias ya algunos resultados me da al menos crece la tabla y
y si quiero insertar el resultado de esa consulta en otra tabla como le hago...?
  #8 (permalink)  
Antiguo 16/02/2010, 15:18
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: Combianar dos tablas en una nueva

jrcampos: La mejor idea es que postees la sentencia que la crea, es decir el CREATE TABLE ....
Eso nos facilita mucho la tarea porque podemos hacer pruebas en nuestro servidor y asegurarnos de darte una respuesta mejor.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 16/02/2010, 15:19
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: Combianar dos tablas en una nueva

Cita:
Iniciado por jrcampos Ver Mensaje
Gracias ya algunos resultados me da al menos crece la tabla y
y si quiero insertar el resultado de esa consulta en otra tabla como le hago...?
SI la estructura de la tabla destino es idéntica:
Código MySQL:
Ver original
  1. INSERT INTO publicaciones2
  2. FROM publicaciones
  3. FROM publicaciones1;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 16/02/2010, 15:21
 
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Combianar dos tablas en una nueva

Cita:
Iniciado por gnzsoloyo Ver Mensaje
jrcampos: La mejor idea es que postees la sentencia que la crea, es decir el CREATE TABLE ....
Eso nos facilita mucho la tarea porque podemos hacer pruebas en nuestro servidor y asegurarnos de darte una respuesta mejor.
La otra tabla en que se desea ingresar es exactamente igual a las otras dos.

aqui esta el create table de una de las tres


CREATE TABLE IF NOT EXISTS `publicaciones` (
`id` int(10) NOT NULL auto_increment,
`anno` year(4) NOT NULL,
`tipo` varchar(60) collate latin1_spanish_ci NOT NULL,
`titulo` text collate latin1_spanish_ci NOT NULL,
`autor` varchar(255) collate latin1_spanish_ci NOT NULL,
`descriptores` text collate latin1_spanish_ci NOT NULL,
`resumen` text collate latin1_spanish_ci,
`ubicacion` varchar(100) collate latin1_spanish_ci NOT NULL,
`url` varchar(150) collate latin1_spanish_ci default NULL,
`observaciones` text collate latin1_spanish_ci,
`otros` text collate latin1_spanish_ci,
PRIMARY KEY (`id`),
FULLTEXT KEY `tipo` (`tipo`),
FULLTEXT KEY `titulo` (`titulo`),
FULLTEXT KEY `autor` (`autor`),
FULLTEXT KEY `descriptores` (`descriptores`),
FULLTEXT KEY `ubicacion` (`ubicacion`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=1033 ;
  #11 (permalink)  
Antiguo 16/02/2010, 15:34
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: Combianar dos tablas en una nueva

Ok. Eso significa, entonces, que la sentencia para transferir los datos es como te la puse.
El detalle sería saber si los diferentes registros que corresponden a la misma publicación tienen también el mismo ID en las dos tablas.
Si no es así la sentencia debe incluir los campos, porque entonces lo que hay que ingresar son los datos y no el ID, ya que el mismo es auto_ibcrement.

Algo así:
Código MySQL:
Ver original
  1. INSERT INTO publicaciones2
  2.       (anno , tipo , titulo, autor, descriptores, resumen, ubicacion, url,  observaciones, otros)
  3.       anno , tipo , titulo, autor, descriptores, resumen, ubicacion, url,  observaciones, otros
  4. FROM publicaciones
  5.       anno , tipo , titulo, autor, descriptores, resumen, ubicacion, url,  observaciones, otros
  6. FROM publicaciones1;
En este caso deben ponerse los campos específicamente para que no lea el ID.
Como ya te dije, esto dependerá de si los id de las otras dos tablas son iguales para los mismos títulos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 16/02/2010, 15:42
 
Fecha de Ingreso: marzo-2009
Mensajes: 7
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Combianar dos tablas en una nueva

Muchas gracias me funcionó a la perfección y genero perfectamente la nueva tabla.....

Etiquetas: dos, tablas
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 08:58.