#1111 - 无效使用组功能

时间:2013-10-31 15:50:53

标签: mysql sql

尝试运行此查询时出错:

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

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

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

3 个答案:

答案 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中每个条目的总和。