我想创建一个存储过程,将多个值插入到一个表中,其中包含另一个表中的值。我对创建 MYSQL 语句来帮助实现这一目标感到头疼。
CREATE PROCEDURE `sp_loadIDs`()
BEGIN
declare vUserID int;
-- I know this should only return one value but dont know the work around for getting all values meeting this criterion
set vUserID = (select UserID from usertbl where DesignationID=1);
insert into tasktbl (UserID,DefaultUser) values (vUserID,'1');
-- For known values, I know it is as easy as follows:
insert into tasktbl (UserID,DefaultUser) values ('21','1'),('22','1'),('23','1');
END
最佳答案
如果我正确理解了要求,我认为这将满足您的要求
INSERT INTO tasktbl
(UserId,
DefaultUser)
(SELECT userid,
'1' AS DefaultUser
FROM usertbl
WHERE DesignationID = 1);
根据OP的评论进行编辑:
INSERT INTO tasktbl
(UserId)
(SELECT userid
FROM usertbl
WHERE DesignationID = 1);
关于mysql - 在单个 SQL 语句中插入多个非 "pre-known"的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52201218/