I have a table named feedback which has columns mechEmail (foreign key) and rate in it.
I have another table named mechanical which has columns email (primary key) and avgrate.
I want to insert the average rate from the feedback table into the mechanical table where mechEmail matches email.
Here's the code that I used, but it only selects - but does not insert:
SELECT
mechanical.email,
COALESCE(AVG(feedback.rate), 0) AS rate
FROM
mechanical
LEFT JOIN
feedback ON feedback.mechEmail = mechanical.email
GROUP BY
mechanical.email;
CodePudding user response:
It seems you don't want an Insert statement but an UPDATE statement as you already have email in mechanical 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;
