Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/09/2009, 21:00
Avatar de gnzsoloyo
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: problema con consulta a dos tablas

En primer lugar, esta consulta:
Código sql:
Ver original
  1. SELECT *
  2. FROM hoja1,contactosconmails
  3. 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 original
  1. INSERT IGNORE INTO contactosconmails
  2. SELECT *
  3. 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.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 29/09/2009 a las 21:06