programing

절: Mysql 업데이트 쿼리에서 알 수 없는 열

iphone6s 2023. 6. 11. 10:26
반응형

절: Mysql 업데이트 쿼리에서 알 수 없는 열

다음은 내 업데이트 쿼리 업데이트입니다.

update grade 
  set grade='A'
where (select assignment*0.3+midExam*0.35+finalExam*0.35 as FINALSCORE 
       from taking) >= 85 
  and taking.student_id = grade.student_id 
  and taking.subject_id = grade.subject-id;

그리고 그 결과는 아래와 같습니다.

'where 절'의 'taking.student_id' 열을 알 수 없습니다.

내가 뭘 잘못하고 있는 거지?

테이블taking하위 쿼리 안에 있으면 하위 쿼리 밖에서 볼 수 없습니다.

당신의 필요를 위해 당신은 join으로 업데이트를 사용해야 합니다.

update grade 
INNER JOIN taking ON taking.student_id=grade.student_id
       and taking.subject_id=grade.subject_id 
         and taking.assignment*0.3+taking.midExam*0.35+taking.finalExam*0.35 >= 85
set grade='A'

일반적인 해결책으로

각 등급에 대해 사례를 추가할 수 있습니다.

update grade 
INNER JOIN taking ON taking.student_id=grade.student_id
       and taking.subject_id=grade.subject_id          
set grade = (case when taking.assignment*0.3+taking.midExam*0.35+taking.finalExam*0.35 >= 85 THEN  'A'
              when taking.assignment*0.3+taking.midExam*0.35+taking.finalExam*0.35 between 60.0 and 84.9 THEN 'B'
              ELSE 'C' END) 

언급URL : https://stackoverflow.com/questions/66293442/unknown-column-in-where-clause-mysql-update-query

반응형