[英]sql insert multiple rows from another table
我有桌子:
ContainerSubTypes (Id, Name)
有很多记录,
WorkAreas (Id, Name)
只有一行,
WorkAreaContainerSubTypes table (Id, WorkAreaId, ContainerSubTypeId)
- 空表。
我需要将数据插入WorkAreaContainerSubTypes
表,它应该如下所示:
(1, 1, containersubtype1_id)
(2, 1, containersubtype2_id)
(3, 1, containersubtype3_id)
我正在尝试 sql ,例如:
INSERT INTO WorkAreaContainerSubTypes (WorkAreaId, ContainerSubTypeId)
VALUES
(1, (SELECT Id FROM ContainerSubTypes));
但是SELECT
查询有超过 1 行,它会抛出错误。 如何实现该插入?
VALUES表值构造函数指定一组要构造成表的行值表达式,因此需要不同的语句:
INSERT INTO WorkAreaContainerSubTypes (WorkAreaId, ContainerSubTypeId)
SELECT 1, Id
FROM ContainerSubTypes;
作为附加说明,只有当SELECT Id FROM ContainerSubTypes
语句返回单行或没有行(可能带有可选的WHERE
子句)时,才可以使用VALUES
:
INSERT INTO WorkAreaContainerSubTypes (WorkAreaId, ContainerSubTypeId)
VALUES
(1, (SELECT Id FROM ContainerSubTypes WHERE Name = 'Some name'));
只需使用insert. . . select
insert. . . select
insert. . . select
:
INSERT INTO WorkAreaContainerSubTypes (WorkAreaId, ContainerSubTypeId)
SELECT 1, Id
FROM ContainerSubTypes;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.