2010년 12월 14일 화요일

[MySQL]필드에 서브쿼리를 사용한경우 서브쿼리 값을 WHERE절에서 검색 하는 방법

SELECT

              s.id as shop_id ,
              s.hq_name as hq_name ,
              i.work_date as work_date ,
              ( SELECT n.`count`  FROM work_order.inv_new as n  

                 AND n.shop_id = i.shop_id
              ) as cnt1,

               ( SELECT n.`count`  FROM work_order.inv_new as n  

                 AND n.shop_id = i.shop_id
              ) as cnt2

FROM `work_order`.`shop` as s

WHERE cnt1 = '1'



이면 에러가 난다.  앨리어스는 검색 할수 없더라.
하다가 안되어서 FROM 절에 SELECT 쓰는 것으로 INLINE VIEW 라고 하더라.
MySQL에서도 되는 듯 하여 써봤다.

 

SELECT 문을 그대로 두고 필드에 일일이 앨리어스를 붙인다음  ( ) 로 싸고 그 앨리어스를
필드명으로 설정 하여 출력 했다.
 

SELECT shop_id,
       hq_name,
       shop_name,
       place,
       agency_cd,
       work_date,

FROM
       ( SELECT

              s.id as shop_id ,
              s.hq_name as hq_name ,
              s.shop_name as shop_name ,
              s.place as place ,
              s.agency_cd as agency_cd ,
              i.work_date as work_date ,
              ( SELECT n.`count`  FROM work_order.inv_new as n  

                 AND n.shop_id = i.shop_id
              ) as cnt1,

               ( SELECT n.`count`  FROM work_order.inv_new as n  

                 AND n.shop_id = i.shop_id
              ) as cnt2

          FROM `work_order`.`shop` as s
      ) as l
 WHERE cnt1 != cnt2 or cnt1 = 10


 


 

댓글 없음:

댓글 쓰기

에버노트에서 원노트로 데이터 옮겨오기

에버노트를 무료로 이용하려면 한달에 업로드 할 수 있는 용량이 60M 밖에 되지 않습니다. 원노트도 에버노트만큼 기능이 개선되었고 무엇보다도 무료로 사용 할 수 있고 용량의 제약이 없어서 최근에는 업무 및 정보 수집 용도로 에버노트를 이용중입니다...