uma mysql:: inserir na tabela, dados de outra tabela?




select*from tabela where (4)

Eu queria saber se há uma maneira de fazer isso puramente em 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 retornaria cerca de 30k linhas.

Existe alguma maneira de fazer o que estou tentando acima em sql em linha reta? Para apenas puxar os dados diretamente de uma tabela (basicamente uma tabela de dados brutos) e inserir em outra tabela (basicamente uma tabela de dados processada)?


Respondido por é o método correto. Mas, se alguém quiser inserir mais colunas extras na tabela, você pode obtê-lo do seguinte:

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'

Na consulta acima, há duas colunas extras chamadas email e current_time .


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'

INSERT INTO Table1 SELECT * FROM Table2

para linha inteira

insert into xyz select * from xyz2 where id="1";

para coluna selecionada

insert into xyz(t_id,v_id,f_name) select t_id,v_id,f_name from xyz2 where id="1";






mysql