[英]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_tests
和student_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.