당신은 정말 foreach는 그런 짓을하고 싶지 않아요. SQL을 절차 적으로 생각하지 마십시오. 대부분의 코드 (한 가지 작업을 한 다음 두 번째 작업 등)와 같습니다. 당신은 집합 기반으로 생각할 필요가 있습니다. 어떤 요구 사항을 충족시키는 큰 덩어리가 어디 있겠습니까? 뭔가 같은 :
이
INSERT INTO term_nodes (tid, x, nid) -- these are the field names
<subquery that selects all the data>
가 하위 쿼리 그냥 삽입 할 모든 데이터와 같은 아마 뭔가를 선택해야합니다 :
SELECT nodeId, 4, termId FROM nodes WHERE contentType = X
그래서 모두 함께 퍼팅을, 당신은 얻을 :
INSERT INTO term_nodes (tid, x, nid)
SELECT nodeId, 4, termId FROM nodes WHERE contentType = X
하위 쿼리의 각 요소를 실행하고 한 번에 하나씩 삽입하려고하지 않아도됩니다. 한 번에 모두 수행하십시오.
여기에 제가 발견 한 좋은 기사가 있습니다. 조금 더 나은 개념을 이해하는 데 도움이되는 Procedural versus Set-Based SQL입니다.
네,하지만 세트의 각 노드에 대해 어떻게해야합니까? –