안녕하세요.
서브쿼리로 select 해온 것에서 조건절에서 검색할수 있는 방법이 없는지요...
ex) 아래와 같은 쿼리가 있을 경우
SELECT sp.loaner_sn
,sp.loaner_model
,sp.loaner_owner_company
,(select x.loaner_io_sts from cs_loaner_process x where x.loaner_sn = sp.loaner_sn order by x.loaner_proc_no desc limit 1) as loaner_io_sts
FROM cs_loaner_info sp
WHERE loaner_io_sts = '01'
ORDER BY loaner_sn desc LIMIT 0,100
대략 이런식으로 쿼리를 수행하면 저 loaner_io_sts 로 검색이 되지 않고 Unknown column 'loaner_io_sts ' in 'where clause' 에러를 만드네요.
저렇게 서브쿼리로 가져온 데이터중에서 검색조건에 포함시켜서 검색할수 있는 방법이 없는지요..
DB는 mysql 입니다.
도움 부탁드립니다.
-- 1. Where 절에서 통째로 서브쿼리 쓰는 방법 -- SELECT sp.loaner_sn , sp.loaner_model , sp.loaner_owner_company , (SELECT x.loaner_io_sts FROM cs_loaner_process x WHERE x.loaner_sn = sp.loaner_sn ORDER BY x.loaner_proc_no DESC LIMIT 1 ) AS loaner_io_sts FROM cs_loaner_info sp WHERE (SELECT x.loaner_io_sts FROM cs_loaner_process x WHERE x.loaner_sn = sp.loaner_sn ORDER BY x.loaner_proc_no DESC LIMIT 1 ) = '01' ORDER BY loaner_sn DESC LIMIT 0, 100 ; -- 2. 인라인뷰를 이용하는 방법 SELECT * FROM (SELECT sp.loaner_sn , sp.loaner_model , sp.loaner_owner_company , (SELECT x.loaner_io_sts FROM cs_loaner_process x WHERE x.loaner_sn = sp.loaner_sn ORDER BY x.loaner_proc_no DESC LIMIT 1 ) AS loaner_io_sts FROM cs_loaner_info sp ) a WHERE loaner_io_sts = '01' ORDER BY loaner_sn DESC LIMIT 0, 100 ;