반응형
SQL 쿼리에서 알 수 없는 열이 참조되는 이유
SQL Anywhere를 경유하지 않고 MariaDB에 대해 실행할 SQL 쿼리를 업데이트 중입니다.실행 중인 쿼리 중 하나에서 오류가 발생했습니다.
Error Code: 1054. Unknown column 'choice' in 'field list'
이것은 이 쿼리에 대한 것입니다.
SELECT
(select firstname||' '||lastname||' ('||service||')' from staff_members where id_number = customer_assignment_reviews.staff_member_id) as Rep,
(select customer_firstname||' '|| customer_lastname from customers where id_number = customer_assignment_reviews.cs_id) as Cus,
last_modified as "Response Date",replace(review_reason,'’','') as "Reason",
(Select choice = CASE
when accepted = 0 then 'No'
when accepted = 1 then 'Yes'
end) as "Accepted?"
FROM customer_assignment_reviews
where staff_member_id in (Select id_number from kar.staff_members where division_id = 6)
and "Response Date" between today() - 7 and today() /* Date Range */
and "Accepted?" = 'No'
Order by 3 desc
이 에러 메시지는 들리는 것처럼 간단합니까?단순히 "선택"이라는 열이 목표 테이블에 존재하지 않는다고 말하는 건가요?
이 코드가 존재하지 않는 열을 참조하는 이유를 설명하려고 합니다.런타임에 뭔가 예상할 수 있을까요?
에서는 서브쿼리를 사용할 필요가 없습니다.SELECT
목록.
SELECT
-- ...
(Select choice = CASE
when accepted = 0 then 'No'
when accepted = 1 then 'Yes'
end) as "Accepted?"
=>
SELECT
CASE
when accepted = 0 then 'No'
when accepted = 1 then 'Yes'
end as "Accepted?"
추가 구문SELECT alias = expression
는 T-SQL에만 고유합니다.
SELECT alias = 1
<=>
SELECT 1 AS alias
이게 무슨 뜻이죠?
(Select choice = CASE
when accepted = 0 then 'No'
when accepted = 1 then 'Yes'
end) as "Accepted?"
매우 중요한 것은select
여기에서는 필요 없습니다.다음과 같은 경우가 있습니다.
(case when accepted = 0 then 'No'
when accepted = 1 then 'Yes'
end) as is_accepted -- prefer to not have to need escape characters
한다면accepted
는, 이러한 2개의 값만을 취하기 때문에, 다음과 같이 간단하게 할 수 있습니다.
elt(accepted + 1, 'No', 'Yes') as is_accepted
언급URL : https://stackoverflow.com/questions/57826658/why-would-unknown-column-be-referenced-in-sql-query
반응형
'source' 카테고리의 다른 글
Uncourched ReferenceError: $가 정의되지 않았습니까? (0) | 2022.11.18 |
---|---|
PHP PDO: 문자 집합, 이름 설정? (0) | 2022.11.18 |
파이프를 Runtime.exec()과 함께 작동시키는 방법 (0) | 2022.11.08 |
$HOME 폴더에 pip 패키지를 설치하는 중 (0) | 2022.11.08 |
사전 매핑 반전/반전 (0) | 2022.11.08 |