我怀疑这是否可能。
我有两张桌子
1)file_master
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
我正在寻找像这样的查询
INSERT INTO user_file (user_id, file_id) VALUES (1, SELECT file_id FROM file_master WHERE file_id <= 4);
这应该相当于
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);
在PHP中,我可以使用for循环构造多个Insert查询。但我正在寻找一个纯SQL解决方案......如果可能的话。
提前致谢。
答案 0 :(得分:2)
INSERT INTO user_file (user_id, file_id)
SELECT 1, file_id
FROM file_master
WHERE file_id <= 4;
答案 1 :(得分:1)
INSERT INTO user_file (user_id, file_id)
SELECT 1, file_id FROM file_master WHERE file_id <= 4;
答案 2 :(得分:1)
你几乎是对的:
INSERT INTO user_file (user_id, file_id) SELECT 1, file_id FROM file_master WHERE file_id <= 4;