2014-03-06 3 views
0

'ID'열이있는 'users'테이블이 있습니다. 나는 2 개의 다른 매개 변수에 기초하여 2 개의 다른 'ID'를 선택하고 그것들을 '작업'으로 알려진 다른 테이블에 삽입하려고합니다.여러 필드에서 select로 SQL 삽입

INSERT INTO jobs (customer_id, client_id) 
SELECT id, id from users 
WHERE username = ? 
AND username = ? 

기본적으로 두 사람의 ID를 가져 와서 새 테이블에 삽입하고 싶습니다.

그러면 매개 변수를?에 바인딩하면 'john'과 'steve'와 같은 모양이됩니다. 위 코드를 시도했지만 잘못된 구문이라는 것을 알고 있습니다. 어떤 아이디어라도 대단히 감사하겠습니다. 당신이 subquerys에게

INSERT INTO jobs (customer_id, client_id) 
VALUES ( 
     (SELECT field from table where id = 2), 
     (SELECT field from table2 where id = 12) 
) 

I을 사용할 수

INSERT INTO jobs 
    (customer_id, client_id) 
VALUES (
    (SELECT id FROM users WHERE username = ?), 
    (SELECT id FROM users WHERE username = ?) 
) 

답변

2

당신은이 자체 조인 사용할 수 있습니다 테스트를 거치지 않았기 때문에 상처에 대해서는 잘 모르겠지만 해결할 수 있다고 생각합니다.

저는 종종 WHERE 또는 SELECT 문에서 이러한 것들을 사용합니다. 하위 쿼리에서 단일 필드와 단일 행을 반환하는 것을 잊지 마십시오.

+0

테이블에 직접 가입 할 생각은 전혀 없었습니다. 정확하고 신속한 응답에 감사드립니다. – wazzaday

0

음 : 당신이 하위 쿼리를 사용할 수,

INSERT INTO jobs 
    (customer_id, client_id) 
SELECT customer.id, client.id 
FROM users customer 
    JOIN users client ON customer.username = ? AND client.username = ? 

을 또는 : 감사