mySQL :: insertar en la tabla, ¿datos de otra tabla?
Me preguntaba si hay una manera de hacer esto únicamente en SQL:
q1 = SELECT campaign_id, from_number, received_msg, date_received
FROM `received_txts` WHERE `campaign_id` = '8';
INSERT INTO action_2_members (campaign_id, mobile, vote, vote_date)
VALUES(q1.campaign_id, q1.from_number, q1.received_msg, q1.date_received);
Nota: q1 devolvería alrededor de 30.000 filas.
¿Hay alguna manera de hacer lo que estoy intentando arriba en SQL directo? ¿Simplemente extraer los datos directamente de una tabla (básicamente una tabla de datos sin procesar) e insertarlos en otra tabla (básicamente una tabla de datos procesados)?
Aceptado
INSERT INTO action_2_members (campaign_id, mobile, vote, vote_date)
SELECT campaign_id, from_number, received_msg, date_received
FROM `received_txts`
WHERE `campaign_id` = '8'
para toda la fila
insertar en xyz seleccionar * de xyz2 donde id="1";
para la columna seleccionada
insertar en xyz(t_id,v_id,f_name) seleccionar t_id,v_id,f_name de xyz2 donde id="1";
Respondido por zerkms es el método correcto. Pero, si alguien busca insertar más columnas adicionales en la tabla, puede obtenerlas de lo siguiente:
INSERT INTO action_2_members (`campaign_id`, `mobile`, `email`, `vote`, `vote_date`, `current_time`)
SELECT `campaign_id`, `from_number`, '[email protected]', `received_msg`, `date_received`, 1502309889 FROM `received_txts` WHERE `campaign_id` = '8'
En la consulta anterior, hay 2 columnas adicionales denominadas email & current_time .