是否可以使用 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
最佳答案
是的,但是您需要小心操作。在这种情况下,您似乎想要一个交叉连接
:
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);
关于sql - 使用 select 语句中的值将多行插入到某个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35456300/