3

我怀疑这是否可能。

我有两张桌子

1) 文件主控

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 循环构造多个插入查询。但我正在寻找一个纯 SQL 解决方案......如果可能的话。

提前致谢。

4

3 回答 3

2
INSERT INTO user_file (user_id, file_id)
    SELECT 1, file_id 
    FROM file_master 
    WHERE file_id <= 4;
于 2012-06-02T19:22:00.367 回答
1
INSERT INTO user_file (user_id, file_id) 
  SELECT 1, file_id FROM file_master WHERE file_id <= 4;
于 2012-06-02T19:21:19.607 回答
1

你几乎是对的:

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

INSERT … SELECT声明

于 2012-06-02T19:22:16.353 回答