INSERT con un SELECT en MySQL

Gracias a @ion por ayudarme con esto!

Que pasa si necesitamos insertar un registro en una tabla y  tenemos que sacar algún valor de de otra tabla para complementar, no se me ocurre una buena forma de explicarlo, mejor vayamos a un ejemplo:

Sabemos que “Fulano” es un vendedor y nos dice para que tienda trabaja. tendríamos por ejemplo:

Fulano, Tiendita X.

Lo complicado viene cuando necesitamos obtener de la tabla “Tiendas” la dirección del establecimiento, por poner un ejemplo, esto se puede hacer buscando manualmente en la tabla y copiando el id, pero imaginen que tienen que hacerlo para 3000 vendedores y la cosa cambia.

Para lograrlo, utilizamos un INSERT combinado con un SELECT, tomando como ejemplo lo anterior, armaremos la siguiente consulta:

INSERT INTO vendedores ( `nombre`, `tienda`,`direccion`) SELECT ‘Fulano’, `Tiendita`, tienda_id FROM tiendas WHERE tiendas.direccion=’Av. Siempreviva 10′

Para explicar un poco esto, la clave es ver en la parte del SELECT como estamos introduciendo valores estáticos como Fulano y Tiendita, pero para la dirección estamos haciendo una búsqueda en otra tabla e ingresando el id resultante, esto es algo muy útil. Como siempre, hay que adaptarlo a nuestras necesidades!

Suscribete ahora

Suscríbete y recibe información valiosa sobre UI, UX, CX y otras soluciones informáticas