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의 한 테이블에서 다른 테이블로 데이터를 복사하려면 위 쿼리를 사용할 수 있습니다
- 여기서 소스 테이블과 대상 테이블은 동일하며 다른 테이블도 사용할 수 있습니다.
- style_id 및 is_deleted 와 같이 복사하지 않는 열은 거의 없습니다. 없으므로 다른 테이블에서 하드 코딩 된 열
- 소스에서 사용한 테이블에도 자동 증분 필드가 포함되어 있으므로 해당 열을 떠나 쿼리 실행시 자동으로 삽입됩니다.
실행 결과
쿼리 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 초