MariaDB“插入”具有多个子查询的多行

时间:2017-01-12 23:53:07

标签: mysql mariadb

尝试为表的每个条目插入新行。

INSERT INTO `serviceProducts`(`model_id`, `url_name`, `priority`, `status`, `info`, `image_link`, `mobilephone`, `service`, `time`, `price`) 
SELECT id FROM models,
CONCAT(SELECT url_name FROM models,"-felsoekning"),
10,
1,
"",
"",
(SELECT name FROM models),
"Felsökning",
"",
399

我想为每个模型添加一个新的“服务”条目。因此,我需要选择所有模型ID以及它们的友好名称和普通名称。此查询返回附近的错误(SELECT name FROM models)。

2 个答案:

答案 0 :(得分:2)

怎么样?
INSERT INTO `serviceProducts`(`model_id`, `url_name`, `priority`, `status`, `info`, `image_link`, `mobilephone`, `service`, `time`, `price`) 
SELECT id,
CONCAT(url_name, "-felsoekning"),
10,
1,
"",
"",
name,
"Felsökning",
"",
399
from models;

答案 1 :(得分:1)

不要在SELECT中使用子查询。只需使用一个SELECT将常量与另一个表中的列合并。

INSERT INTO `serviceProducts`(`model_id`, `url_name`, `priority`, `status`, `info`, `image_link`, `mobilephone`, `service`, `time`, `price`) 
SELECT id, CONCAT(url_name,"-felsoekning"), 10, 1, "", "", name, "Felsökning", "", 399
FROM models