2011-03-20 12 views
15

동일한 테이블에 2 개의 행을 삽입하려고합니다. 첫 번째는 select에서 데이터를 입력하고 두 번째는 데이터에 대해 vars를 사용합니다. 첫 번째 행을 삽입 할 수 있지만 여러 행을 삽입하는 데 문제가 있습니다.select를 사용하여 여러 행 삽입

$ partner_id는 행을 서로 연결하는 것입니다. 이 메신저 들어 php에서 생성 된 32char 값을 사용하십시오. 어쨌든 삽입 된 첫 번째 행의 ID로 mysql을 사용하여 edit_partner_id를 설정해야합니까? 아니면 마지막 ID를 얻기 전에 첫 번째 행이 만들어지지 않아서 가능하지 않습니까?

업데이트도 추가 할 수 있습니까, 아니면 별도의 쿼리에서 실행해야합니까?

$sql = "INSERT INTO edits_customers (customer_id, creator_id, firstname, surname, 
      house_no, address_1, address_2, address_3, city, county, postcode, 
      country, email, home_tel, mobile_tel, work_tel, notes, edit_type, 
      edit_partner_id) 
     (SELECT *, 'before', '{$partner_id}' FROM customers WHERE customers.id = 123), 
     ('{$var1}', '{$var2}', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 
      '', 'after', $partner_id)"; 

덕분에 다른 테이블과 사용자가 직접 제공하는 일부 데이터에서 일부 데이터를 삽입하기 위해 노력하고 내가 제대로 질문을 이해 해요 경우

답변

28

, 당신은 사용하여이 같은 것을 할 수 있어야 UNION : 도움이

INSERT INTO SomeTable (Col1, Col2, Col3) 
SELECT Val1, Val2, Val3 FROM SomeOtherTable 
UNION 
SELECT 'MyProvidedVal1', 'MyProvidedVal2', 'MyProvidedVal3' 

희망 ...

+0

그냥 작업. 감사합니다 – arbme

+0

나는 당신에게 큰 감사를 워드 프로세서에서 솔루션을 찾지 못했습니다 :) –