En primer lugar, esta consulta:
Código sql:
Ver originalSELECT *
FROM hoja1,contactosconmails
WHERE contactosconmails.email != hoja1.email
crea un
producto cartesiano entre hoja1 y contactosconmails, lo que significa multiplicar los registros de una con los registros de la otra... o sea, cerca de 4.500.000 registros. De allí el problema.
En segundo lugar, es evidente que las tablas no son exactamente iguales, al menos en cuanto a los nombres de los campos, ya que sinó se hubiese generado un INNER JOIN sobre los campos del mismo nombre, y hubieses tenido menor resultado.
Cita: quiero pasar todos los datos de hoja1 a contactosconmails
En tercer lugar, si lo que quieres es pasar los datos de una tabla a otra, un SELECT con JOIN (la coma, en este caso), no es el modo de hacerlo. Esto:
Código sql:
Ver originalINSERT IGNORE INTO contactosconmails
SELECT *
FROM hoja1;
funcionará si la PK de dos registros es la misma.
Nota: En este caso
las tablas deben ser forzosamente iguales, en
cantidad de columnas y
tipo de datos y en
el mismo orden. De lo contrario hay que especificar qué columnas de datos tiene la tabla destino y cuáles (misma cantidad) se están pasando desde la tabla origen.