2012-06-02 1 views
3

가능한지 의심 스럽습니다.mysql 쿼리는 몇 개의 필드가있는 여러 행에 동일한 문자를 넣을 수 있습니다.

나는이

INSERT INTO user_file (user_id, file_id) VALUES (1, 1); 
    INSERT INTO user_file (user_id, file_id) VALUES (1, 2); 
    INSERT INTO user_file (user_id, file_id) VALUES (1, 3); 
    INSERT INTO user_file (user_id, file_id) VALUES (1, 4); 

에서 동등해야한다 나는이

INSERT INTO user_file (user_id, file_id) VALUES (1, SELECT file_id FROM file_master WHERE file_id <= 4); 

같은 쿼리를 찾고 있어요

file_id | name 
----------------- 
1  | readme.txt 
2  | readme2.txt 
3  | readme3.txt 
4  | readme4.txt 
5  | readme4.txt 


2) user_file 

user_id | file_id 
----------------- 
1  | 2 
1  | 4 

file_master 두 테이블

1)가 PHP 수 있습니다. for 루프를 사용하여 여러 Insert 쿼리를 생성합니다. 하지만 순수 SQL 솔루션을 찾고 있는데 ... 가능하다면.

미리 감사드립니다.

답변

2
INSERT INTO user_file (user_id, file_id) 
    SELECT 1, file_id 
    FROM file_master 
    WHERE file_id <= 4; 
+0

그 덕분에 ... 유용했습니다 – phpsessionid

1
INSERT INTO user_file (user_id, file_id) 
    SELECT 1, file_id FROM file_master WHERE file_id <= 4; 
+0

감사합니다, 유용했습니다 – phpsessionid

1

당신은 거의 맞아 :

INSERT INTO user_file (user_id, file_id) SELECT 1, file_id FROM file_master WHERE file_id <= 4; 

INSERT … SELECT statement를 참조하십시오.

+0

완벽 ... 이것은 내가 뭘 찾고 있었는지 ... 덕분에 많이 – phpsessionid

+1

... [많이] (http://en.wiktionary.org/ wiki/alot) – Gumbo

+0

옙 :) ................. – phpsessionid

관련 문제