我有两张桌子
modules_templates
和
templates
在表格模板中,我有75条记录。我想在模板中插入modules_templates模块中modules_templates = template_id中的template_id的一些数据。 我创建了这个查询:
INSERT INTO `modules_templates` (`module_template_id`,`module_template_modified`,`module_id`,`template_id`) VALUES ('','2014-04-14 10:07:03','300',(SELECT template_id FROM templates WHERE 1))
我遇到错误#1242 - Subquery returns more than 1 row
,如何在1个查询中添加所有75行?
答案 0 :(得分:2)
试试这个
INSERT
INTO `modules_templates`
(`module_template_id`,`module_template_modified`,`module_id`,`template_id`)
(SELECT '','2014-04-14 10:07:03','300',template_id FROM templates WHERE 1)
您的查询无效,因为您为一行插入了值,其中最后一个字段即子查询的结果是多行的,所以您需要做的是将这些单行值放在子查询中,这样它们就可以了为子查询中的每一行返回。
答案 1 :(得分:1)
试试这个:
INSERT INTO `modules_templates`
(`module_template_id`,`module_template_modified`,`module_id`,`template_id`)
SELECT '','2014-04-14 10:07:03','300',template_id FROM templates WHERE 1
答案 2 :(得分:0)
INSERT INTO `modules_templates`
(`module_template_id`,`module_template_modified`,`module_id`,`template_id`)
VALUES
('','2014-04-14 10:07:03','300',
(SELECT template_id FROM templates WHERE 1 limit 1))
答案 3 :(得分:0)
要添加多行,字段数/类型必须匹配:
INSERT INTO foo SELECT * FROM bar;
请参阅以下链接,了解如何正确执行此操作: