簡體   English   中英

使用子查詢更新總計列

[英]Using Subquery to update total column

這是我的查詢:

UPDATE student_tests,
  (SELECT SUM(olc_sta_i_points_earned) AS total, olc_sta_i_stt_num FROM student_answers
     JOIN student_tests ON olc_sta_i_stt_num = olc_stt_i_num         
  ) AS a
SET student_tests.olc_stt_i_score = a.total
WHERE a.olc_sta_i_stt_num = student_tests.olc_stt_i_num 

沒有錯誤,但是說零行受到影響。

基本上,我有兩個表: student_testsstudent_answers ,測試ID映射到了student_answers表。 我想要一個子查詢,在這里我可以求和特定測試ID的所有學生答案的總和,然后更新測試表中student_tests表中的分數列。

我在這里的where子句上做錯什么了嗎? 或者是別的什么?

您應該將此明確地表述為update / join ,而不是在where子句中具有join條件。

您的問題是您在子查詢中沒有group by 似乎不需要額外加入student_tests ,因此請嘗試以下操作:

UPDATE student_tests s JOIN
       (SELECT SUM(a.olc_sta_i_points_earned) AS total, a.olc_sta_i_stt_num
        FROM student_answers a     
        GROUP BY a.olc_sta_i_stt_num    
       ) AS a
       ON a.olc_sta_i_stt_num = t.olc_stt_i_num 
    SET s.olc_stt_i_score = a.total

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM