[英]Inserting multiple rows into some table using values from select statement
是否可以使用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
是的,但是您需要小心操作。 在這種情況下,您似乎想要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);
INSERT INTO SomeTable (UserID, ModuleID, ModuleRights)
SELECT u.UserID, u.ModuleID, u.ModuleRights FROM Users u;
如果您的ModuleID
和ModuleRights
不在users
表中,則插入null或啞數值並在需要的條件下進行替換。
使用選擇語句插入多行
insert into tbl_teacher
(fName,
lName,
email,
cNo)
select s.fName,
s.lName,
s.email,
s.cNo
from tbl_student s
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.