2013-10-31 44 views
0

我越来越想运行此查询时出现错误:#1111 - 无效使用组功能

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

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

我基本上是试图得到的总和从tbl2的领域,将其插入TBL 1

回答

1

达到你想要做什么,最简单的方法是通过一个子查询:

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

你选择从tbl2的多个值,并希望他们的在TBL1每个条目的总和。

1

尝试这样做:

UPDATE tbl1 
SET `tbl1`.field = (
    SELECT SUM(tbl2.grade) 
    FROM tbl2 
    WHERE tbl2.word = tbl1.word 
    ); 
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 
相关问题