尝试运行此查询时出现错误:
UPDATE tbl1, tbl2 SET `tb1`.field=SUM(tbl2.grade) WHERE tbl2.word=tbl1.word
这是错误:#1111 - Invalid use of group function
我基本上试图从 tbl2 中获取一个字段的总和并将其插入到 tbl1
加入计算每个单词总成绩的子查询。
UPDATE tbl1 a
INNER JOIN
(
SELECT word, SUM(grade) totalGrade
FROM tbl2
GROUP BY word
) b ON a.word = b.word
SET a.field = b.totalGrade
尝试做:
UPDATE tbl1
SET `tbl1`.field = (
SELECT SUM(tbl2.grade)
FROM tbl2
WHERE tbl2.word = tbl1.word
);
实现您想要做的最简单的方法是通过子查询:
UPDATE tbl1 SET tbl1.field=
(SELECT SUM(tbl2.grade) FROM tbl2 WHERE tbl2.word=tbl1.word)
您正在从 tbl2 中选择多个值,并希望为 tbl1 中的每个条目计算它们的总和。