La manera para usar este comando es muy sencilla. Vamos a suponer que contamos con las tablas pais y usuario:
CREATE TABLE pais (
id INTEGER UNSIGNED NOT NULL,
nombre VARCHAR(100) NOT NULL,
PRIMARY KEY(id)
)
TYPE=InnoDB;
CREATE TABLE usuario (
id BIGINT NOT NULL,
pais_id INTEGER UNSIGNED NOT NULL,
nombre VARCHAR(150) NOT NULL,
PRIMARY KEY(id, pais_id),
INDEX usuario_FKIndex1(pais_id),
FOREIGN KEY(pais_id)
REFERENCES pais(id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
TYPE=InnoDB;
Ahora deseamos guardar en otra tabla únicamente el nombre de los usuarios y el nombre del país al que pertenece. Para esto crearemos una tabla llamada usuario_pais en la que vamos a depositar estos datos:
CREATE TABLE usuario_pais (
usuario_nombre VARCHAR(150) NOT NULL,
pais_nombre VARCHAR(100) NOT NULL,
PRIMARY KEY(usuario_nombre)
)
TYPE=InnoDB;
Una vez que ya se tienen las 3 tablas, deberemos ejecutar el comando INSERT INTO ... SELECT para guardar los nombres de los usuarios y sus países en la tercer tabla que creamos. Esto se hace de la siguiente manera:
mysql> INSERT INTO usuario_pais (usuario_nombre,pais_nombre)
SELECT usuario.nombre, pais.nombre FROM
usuario
INNER JOIN pais ON usuario.pais_id=pais.id;
Esto habrá guardado los registros que encontró en la tabla usuario_pais, y en mi caso el contenido de mi tabla queda de esta manera:
mysql> select * from usuario_pais;
+----------------+-------------+
| usuario_nombre | pais_nombre |
+----------------+-------------+
| Beatriz Guzmán | Portugal |
| Juan Pérez | México |
+----------------+-------------+
Listo, con esto ya pueden mandar el resultado de una consulta a otra tabla.
Gracias es lo que andaba buscando
ResponderEliminarbuenas como lo haria con tres tablas si puedes ayudarme mi correo carlospernalete@hotmail.com
ResponderEliminar