반응형
절: 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
반응형
'programing' 카테고리의 다른 글
| 하위 쿼리가 있는 Oracle 피벗 절의 예 (0) | 2023.06.11 |
|---|---|
| (Firebase에서) Google-services.json을 저장소에 추가해야 합니까? (0) | 2023.06.11 |
| False일 때 축소된 대신 숨김으로 변환하는 WPF BooleanToVisibilityConverter? (0) | 2023.06.11 |
| 미리 정의된 Oracle pl/SQL 예외의 전체 목록은 어디에서 찾을 수 있습니까? (0) | 2023.06.11 |
| 여러 줄 텍스트 상자의 최대 길이 지정 (0) | 2023.06.11 |