PArtamos de un detalle para aclarar confusiones: No son BASES DE DATOS, son TABLAS...
En cuanto a la solución, la encotnrarás en cualquier manual básico: Si ambas tablas son iguales, con los mismos campos, del mismo tamaño y tipo, es tan simple como:
Claro que para que esto esté bien realizado, ninguno de los datos en los registros de la tabla Origen debe existir en la tabla DEstino, o se duplicarán.
Si, por ejemplo, alguno de esos campos es PK, digamos el teléfono, y solo quieres que se inserten aquellos que no existen en la tabla Destino, puedes hacerlo de varias formas, pero la más simple sería:
Ese "IGNORE" hace que no se inserten registros cuya PK es la misma de la destino, pero tampoco devuelve mensajes de erorr si encuentra alguno; caso contrario la ejecución se detiene con un error de clave duplciada.
Pero si ninguno de esos campos es PK, pero pueden existir ya datos de la Origen en la Destino, tendrás que hacer un par de pasos previos, entre ellos crear una tabla temporal donde pongas los datos que se insertarán:
Código MySQL:
Ver original# Recoleccion de datros.
SELECT nombre
, apellidos
, telefono
# Insercion de los datos encontrados.
SELECT nombre
, apellidos
, telefono
;
Cuidado: Las tablas temporary sólo existiran durante la misma conexión. No puedes usarlas si la conexión se cierra ni siquiera momentáneamente, porque la tabla se borra en forma instantánea.