是否可以使用select语句的值在一个表中插入多个行?
举个例子:
INSERT INTO SomeTable (UserID, ModuleID, ModuleRights) VALUES
(u.UserId, 1, 15),
(u.UserId, 2, 1),
(u.UserId, 4, 3),
(u.UserId, 8, 7)
SELECT * FROM Users u发布于 2016-02-17 12:10:02
是的,但你要小心你怎么做。在这种情况下,您似乎需要一个cross join
INSERT INTO SomeTable (UserID, ModuleID, ModuleRights)
SELECT u.UserId, v.ModuleID, v.ModuleRights
FROM Users u CROSS JOIN
(VALUES (1, 15),
(2, 1),
(4, 3),
(8, 7)
) v(ModuleID, ModuleRights);发布于 2016-02-17 12:11:38
INSERT INTO SomeTable (UserID, ModuleID, ModuleRights)
SELECT u.UserID, u.ModuleID, u.ModuleRights FROM Users u;如果您的ModuleID和ModuleRights不是users表的一部分,那么插入空值或虚拟值,并在需要的条件下进行替换。
发布于 2016-02-17 12:29:49
使用select语句插入多行
insert into tbl_teacher
(fName,
lName,
email,
cNo)
select s.fName,
s.lName,
s.email,
s.cNo
from tbl_student shttps://stackoverflow.com/questions/35456300
复制相似问题