Ver Mensaje Individual
  #15 (permalink)  
Antiguo 29/04/2008, 17:33
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Re: Copiar datos entre tablas

Código:
DROP TABLE IF EXISTS `forum`.`campanya`;
CREATE TABLE  `forum`.`campanya` (
  `idcampanya` int(11) NOT NULL,
  PRIMARY KEY  (`idcampanya`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `forum`.`vendes`;
CREATE TABLE  `forum`.`vendes` (
  `idvenda` int(11) NOT NULL auto_increment,
  `idcampanya` int(11) NOT NULL,
  `idproducte` int(11) NOT NULL,
  PRIMARY KEY  (`idvenda`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

INSERT INTO campanya (idcampanya)
SELECT DISTINCT v.idcampanya
  FROM vendes v LEFT JOIN  campanya c
             ON v.idcampanya=c.idcampanya
WHERE c.idcampanya Is Null;
Esto funciona con MySql 5.0.45, y creo que es una situación similar a la que expones...

Estoy haciendo un INSERT INTO a una tabla usandola en el select, la unica diferencia esta en el DISTICNT que lo he tenido que poner porque en mi caso idcampanya no era unico en la tabla de donde se sacan los datos (vendes)...

No estamos indicando la misma tabla de destino y de origen, de origen usamos una consulta sobre esta tabla y otra, no hay conflicto!!!

Bandit_S si nos pasas la definicion completa de las tablas quizas vemos algo.

La solución de la tabla temporal si no es una oparación que vayas ha hacer habitualmente no es mala.

Quim