我試圖運行在MySQL不能指定在FROM子句
UPDATE studentassessment sa SET sa.issubmitted=FALSE WHERE
sa.studentassessmentid <>
(SELECT studentassessmentid FROM studentassessment sa1 WHERE
sa.StudentId=sa1.StudentId
AND sa.AssessmentPeriodId=sa1.AssessmentPeriodId
ORDER BY sa1.studentassessmentid DESC LIMIT 0, 1)
AND sa.studentid=568;
此查詢,給了我這個錯誤
您不能指定目標,更新目標表'表在FROM子句
「山」的更新,我發現這類問題的數量,但它們是針對他們所問這樣沒有幫助我很多的疑問,從這樣一個答案我t裏德改變這樣
UPDATE studentassessment sa SET issubmitted=FALSE WHERE
sa.studentassessmentid <>
(
SELECT studentassessmentid FROM
(
SELECT studentassessmentid FROM studentassessment sa1 WHERE
sa.StudentId=sa1.StudentId
AND sa.AssessmentPeriodId=sa1.AssessmentPeriodId
ORDER BY sa1.studentassessmentid DESC LIMIT 0, 1
) AS T
)
AND sa.studentid=568;
查詢然後,我開始收到此錯誤
未知列在 'where子句'
任何幫助 'sa.StudentId'?
編輯
這也沒有工作
UPDATE studentassessment sa
INNER JOIN
(SELECT studentassessmentid FROM studentassessment sa1 WHERE
sa.StudentId=sa1.StudentId
AND sa.AssessmentPeriodId=sa1.AssessmentPeriodId
ORDER BY sa1.studentassessmentid DESC LIMIT 0, 1) T
ON sa.studentassessmentid<>T.StudentAssessmentId
SET sa.issubmitted=0
WHERE sa.studentid=568;
謝謝!其實臨時表的概念在我腦海中,但我必須將查詢傳遞給某人運行,所以我想如果我可以在一個查詢本身做到這一點。那麼臨時桌子除外? –
@PawanNogariya你也可以通過使用連接來做到這一點,但我不明白在這種特殊情況下你可以做到這一點。無論如何添加它來回答。 – Vyktor
對不起,我沒有看到你的答案中的任何加入,儘管我也嘗試了加入,但沒有奏效,我將它添加到了我的問題中 –