尝试运行此查询时出错:
UPDATE tbl1, tbl2 SET `tb1`.field=SUM(tbl2.grade) WHERE tbl2.word=tbl1.word
这是错误:#1111 - Invalid use of group function
我基本上试图从tbl2得到一个字段的总和并将其插入到tbl1中
答案 0 :(得分:4)
加入一个子查询,计算每个单词的总成绩。
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
答案 1 :(得分:1)
尝试做:
UPDATE tbl1
SET `tbl1`.field = (
SELECT SUM(tbl2.grade)
FROM tbl2
WHERE tbl2.word = tbl1.word
);
答案 2 :(得分:1)
实现目标的最简单方法是通过子查询:
UPDATE tbl1 SET tbl1.field=
(SELECT SUM(tbl2.grade) FROM tbl2 WHERE tbl2.word=tbl1.word)
您正在从tbl2中选择多个值,并希望tbl1中每个条目的总和。