본문 바로가기
MySql

MySQL 쿼리의 WHERE 절에서 열 별칭을 사용하면 오류가 발생합니다.

by 베이스 공부 2020. 9. 20.
반응형

실행중인 쿼리는 다음과 같지만이 오류가 발생합니다.

# 1054- 'IN / ALL / ANY subquery'의 알 수없는 열 'guaranteed_postcode'

SELECT `users`.`first_name`, `users`.`last_name`, `users`.`email`,
SUBSTRING(`locations`.`raw`,-6,4) AS `guaranteed_postcode`
FROM `users` LEFT OUTER JOIN `locations`
ON `users`.`id` = `locations`.`user_id`
WHERE `guaranteed_postcode` NOT IN #this is where the fake col is being used
(
 SELECT `postcode` FROM `postcodes` WHERE `region` IN
 (
  'australia'
 )
)

내 질문은 : 동일한 DB 쿼리의 where 절에서 가짜 열을 사용할 수없는 이유는 무엇입니까?

 

해결 방법

 

GROUP BY, ORDER BY 또는 HAVING 절에서만 열 별칭을 사용할 수 있습니다.

표준 SQL은 다음을 허용하지 않습니다. refer to a column alias in a WHERE clause. This restriction is imposed because when the WHERE code is executed, the column value may not yet 결정됩니다.



 

참조 페이지 https://stackoverflow.com/questions/942571

 

 

반응형

댓글