mysql使用返回x行数的子查询更新或插入到另一个表

mysql使用返回x行数的子查询更新或插入到另一个表,mysql,subquery,Mysql,Subquery,我已经试了8个小时了,但是没有用。我正在尝试更新或将单个列中2到10行的平均值插入到另一个表中 我现在用来计算平均值的代码 SELECT COUNT(*), NAME, AVG(AVERAGE) FROM table1 GROUP BY NAME ORDER BY NAME; 这将返回正确的结果,因为我使用GROUPBY作为解决方法,但现在我需要将该数据放到另一个表中 然而,当我尝试运行更新或插入mysql时,总是抱怨返回多行子查询 我如何才能将其放入名称匹配的表2中,并放入表2中的列平均值中

我已经试了8个小时了,但是没有用。我正在尝试更新或将单个列中2到10行的平均值插入到另一个表中

我现在用来计算平均值的代码

SELECT COUNT(*), NAME, AVG(AVERAGE) FROM table1 GROUP BY NAME ORDER BY NAME;
这将返回正确的结果,因为我使用GROUPBY作为解决方法,但现在我需要将该数据放到另一个表中

然而,当我尝试运行更新或插入mysql时,总是抱怨返回多行子查询

我如何才能将其放入名称匹配的表2中,并放入表2中的列平均值中?名称是100%唯一的。我也希望名字匹配。这可能每天更新一次

编辑: 第一个表条目\u ID,名称对于多个条目不唯一,平均值 第二个表有IDunique、NAMEunique和AVERAGE

我尝试了很多查询,这并不好笑,我搜索了所有的文档,只是没有把一些东西放在一起

当您运行上面的代码时,它可能有8行,平均运行6行,它们按名称匹配

我想将它们存储在表2中,其中表1中的名称与表2中的名称匹配,但只给出上述查询的单个平均值

谢谢

EDIT2:这是有效的代码

在表2中插入名称,平均值 从中选择* 选择名称,平均值作为平均值 来自表1 按名称分组主查询 关于重复密钥 更新table2.AVERAGE=main_query.AVERAGE


感谢@ARubiksCube

我不确定您的实际错误消息是什么。我猜您使用的是较新版本的MYSQL,因此会出现此错误

此查询将使用表1中的值更新表2中的所有记录。如果记录不存在,将插入该记录。如果该记录存在,将对其进行更新

INSERT INTO table2 (NAME, AVERAGE)
SELECT *
FROM
(SELECT NAME, AVG(AVERAGE) as AVERAGE
FROM table1
GROUP BY NAME) main_query
ON DUPLICATE KEY
UPDATE table2.AVERAGE = main_query.AVERAGE;

共享其他表的详细信息。还可以使用用于更新/插入的查询更新问题。请注意,通常不会存储派生数据。您应该发布两个表的一些数据。有关详细信息,请编辑。提前谢谢。我想也会这么简单,很遗憾。。。1062-键'PRIMARY'@Xofraz的重复条目'16'我用一个应该有效的查询更新了我的答案这正是我要查找的,但现在出现错误1136-列计数与第1行的值计数不匹配,在我运行它之前,phpmyadmin给出了意外的关键字。位置127附近为ON,无法识别语句类型。在127号位置附近。此外,我还必须取出条目id,因为它们是增量的和唯一的。我再次更新了它,假设表2的“名称”和“id”列上设置了“唯一”。如果没有,请运行ALTER table2 ADD UNIQUE ID或/和ALTER table2 ADD UNIQUE NAME。此外,如果名称是“文本”字段,则此查询将不起作用。在测试时,我使用了一个“varchar”,谢谢,它起作用了,我必须在第一次选择时取出。我会在几分钟内更新,我想100%确保值是正确的。编辑:事实上第一次我有点困惑,第二次我没有删除。