2010-04-19 5 views
1

나는이 MySQL 쿼리를 완전히 보키고 있다고 느끼지만 어쨌든 묻습니다.MySQL - WHERE 절이 포함 된 하위 쿼리에서 별칭 사용

SELECT sample_id AS FOO 
FROM tbl_test 
WHERE sample_id = 521 
     AND sample_id IN (SELECT sample_id 
         FROM tbl_test 
         WHERE sample_id = FOO 
         GROUP BY sample_id) 

편집이 쿼리는 다른 서버에서 잘 작동하고 새 서버에서 전술 한 바와 같이 실패 : 나는 다음 실행할 때 내가 경고 Unknown column 'FOO', and how I can get this query to work properly, in 'where clause'을받을 이유 궁금입니다. 이전 버전은 5.0.45이고 새 버전은 5.0.75입니다.

+0

알 수없는 열 오류가 발생하지만 IN (...)이 중복 된 항목을 게시했습니다 (필드 값이 같은 레코드의 필드 값 == 동어 반복). 아마 이것이 단지 샘플 일 뿐이라는 것을 이해하지만, 무엇을 성취하려고합니까? – Unreason

+0

실제 쿼리는 다소 복잡하므로 간단히 테스트입니다. 쿼리가 이전 서버에서와 같이 정상적으로 작동 했으므로 새 서버에서이 오류가 발생하는 이유를 확인하려고 노력했지만 효과적인 (또는 유용한) 쿼리를 만들지 않습니다. 한 서버에서 오류가 발생하지 않고 왜 새 서버에서 오류가 발생했는지 확인하십시오. – Stuart

답변

3
SELECT sample_id 
FROM tbl_test outter 
WHERE sample_id = 521 
     AND sample_id IN (SELECT sample_id 
         FROM tbl_test 
         WHERE sample_id = outter.sample_id 
         GROUP BY sample_id) 
+0

저에게주는 것은 : 'where 절'에서 'outter.FOO'알 수없는 열 – Stuart

+0

죄송합니다, 피곤합니다. 장소에서 편집 됨. – Unreason

+0

빙고 ... 그랬어. 고마워, 잠 좀 자라. – Stuart

관련 문제