[sql] mysql :: 다른 테이블의 데이터를 테이블에 삽입 하시겠습니까?

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);

참고 : q1은 약 30k 행을 반환합니다.

위의 SQL에서 위의 시도를 수행 할 수있는 방법이 있습니까? 한 테이블 (기본적으로 원시 데이터 테이블)에서 데이터를 똑바로 가져 와서 다른 테이블 (기본적으로 처리 된 데이터 테이블)에 삽입하려면?



답변

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'


답변

전체 행

xyz에 삽입 select * from xyz2 여기서 id = "1";

선택된 열

xyz (t_id, v_id, f_name)에 삽입 xyz2에서 t_id, v_id, f_name을 선택하십시오. 여기서 id = "1";


답변

응답 zerkms하는 정확한 방법이다. 그러나 누군가 테이블에 더 많은 열을 삽입하려는 경우 다음에서 얻을 수 있습니다.

INSERT INTO action_2_members (`campaign_id`, `mobile`, `email`, `vote`, `vote_date`, `current_time`)
SELECT `campaign_id`, `from_number`, 'example@domain.xyz', `received_msg`, `date_received`, 1502309889 FROM `received_txts` WHERE `campaign_id` = '8'

위 쿼리에는 email & current_time 이라는 두 개의 추가 열이 있습니다 .


답변

INSERT INTO Table1 SELECT * FROM Table2


답변

INSERT INTO preliminary_image (style_id,pre_image_status,file_extension,reviewer_id,
uploader_id,is_deleted,last_updated)

SELECT '4827499',pre_image_status,file_extension,reviewer_id,
uploader_id,'0',last_updated FROM preliminary_image WHERE style_id=4827488

분석

mysql의 한 테이블에서 다른 테이블로 데이터를 복사하려면 위 쿼리를 사용할 수 있습니다

  1. 여기서 소스 테이블과 대상 테이블은 동일하며 다른 테이블도 사용할 수 있습니다.
  2. style_idis_deleted 와 같이 복사하지 않는 열은 거의 없습니다. 없으므로 다른 테이블에서 하드 코딩 된 열
  3. 소스에서 사용한 테이블에도 자동 증분 필드가 포함되어 있으므로 해당 열을 떠나 쿼리 실행시 자동으로 삽입됩니다.

실행 결과

쿼리 1 개, 성공 1 개, 오류 0 개, 경고 0 개

쿼리 : 예비 _ 이미지에 삽입 (style_id, pre_image_status, file_extension, reviewer_id, uploader_id, is_deleted, last_updated) select …

5 행 영향을 받음

실행 시간 : 0.385 초 전송 시간 : 0 초 총 시간 : 0.386 초


답변