在 mysql 中的另一个 table 中将列中的数据作为平均值插入

Insert data from column as average in another table in mysql

我有一个名为 feedback 的 table,其中包含列 mechEmail(外键)和 rate

我有另一个名为 mechanical 的 table,它有列 email(主键)和 avgrate.

我想将 feedback table 的平均汇率插入 mechanical table,其中 mechEmail 匹配 email

这是我使用的代码,但它只选择 - 但不插入:

SELECT 
    mechanical.email, 
    COALESCE(AVG(feedback.rate), 0) AS rate
FROM 
    mechanical
LEFT JOIN 
    feedback ON feedback.mechEmail = mechanical.email
GROUP BY 
    mechanical.email;

您似乎不需要 Insert 语句而是 UPDATE 语句,因为您已经有机械式电子邮件 table -

UPDATE mechanical M
  JOIN (SELECT mechEmail, AVG(rate) rate
          FROM feedback
         GROUP BY mechEmail) F ON F.mechEmail = M.email
   SET M.avgrate = F.rate;