0

尝试运行此查询时出现错误:

UPDATE tbl1, tbl2 SET `tb1`.field=SUM(tbl2.grade) WHERE tbl2.word=tbl1.word

这是错误:#1111 - Invalid use of group function

我基本上试图从 tbl2 中获取一个字段的总和并将其插入到 tbl1

4

3 回答 3

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
于 2013-10-31T15:52:29.427 回答
1

尝试做:

UPDATE tbl1
SET `tbl1`.field = (
    SELECT SUM(tbl2.grade)
    FROM tbl2
    WHERE tbl2.word = tbl1.word
    );
于 2013-10-31T15:52:04.593 回答
1

实现您想要做的最简单的方法是通过子查询:

UPDATE tbl1 SET tbl1.field=
    (SELECT SUM(tbl2.grade) FROM tbl2 WHERE tbl2.word=tbl1.word)

您正在从 tbl2 中选择多个值,并希望为 tbl1 中的每个条目计算它们的总和。

于 2013-10-31T15:55:33.440 回答