为每个子查询结果插入一次MySQL
我想执行一个MYSQL查询:为每个子查询结果插入一次MySQL,mysql,loops,Mysql,Loops,我想执行一个MYSQL查询: INSERT INTO taskattempts (taskID) VALUES (_); 我希望对每个查询结果执行多次: SELECT id FROM tasks WHERE stageID = 1; 使用第二个查询的结果id作为第一个查询中taskID的值 有没有办法使用一个MySQL查询来实现这一点?运行多个查询的PHP循环似乎效率极低 *编辑* 我实际上需要填写多个列,两个是静态的,一个是子查询。我发现INSERT-INTO-taskattempts(s
INSERT INTO taskattempts (taskID) VALUES (_);
我希望对每个查询结果执行多次:
SELECT id FROM tasks WHERE stageID = 1;
使用第二个查询的结果id作为第一个查询中taskID的值
有没有办法使用一个MySQL查询来实现这一点?运行多个查询的PHP循环似乎效率极低
*编辑*
我实际上需要填写多个列,两个是静态的,一个是子查询。我发现INSERT-INTO-taskattempts(stageAttemptID,taskID,complete)从stageID=5的任务中选择0,id,5;行得通,但我想知道这是否符合犹太教。另外,出于知识的考虑,您能否用不同的查询填写不同的列
INSERT INTO taskattempts (taskID) SELECT id FROM tasks WHERE stageID = 1;
(这是普遍支持的标准SQL)
回答问题的第二部分,您可以在SELECT
子句中自由混合常量和列:
INSERT INTO taskattempts (stateAttemptID, taskID, complete)
SELECT 0, id, 5 FROM tasks WHERE stageID = 1;
如果常量是字符串,不要忘记引用它们。请记住,如果需要,您可以包含一个复杂的
SELECT
语句和JOIN
s以及聚合。不过,为了简化我的问题,我遗漏了一些东西。我实际上需要填写多个列,两个是静态的,一个是子查询。我发现INSERT-INTO-taskattempts(stageAttemptID,taskID,complete)从stageID=5的任务中选择0,id,5;行得通,但我想知道这是否符合犹太教。此外,出于知识的兴趣,你能用不同的查询填写不同的栏吗?@wyatt如果你的问题中遗漏了什么,请编辑问题。不要用评论来扩展问题。