select절 스칼라서브쿼리 사용시 괄호가 두개이면 메인테이블에 컬럼을 못찾습니다. 어떻게 하면 접근이 가능할까요? 0 3 554

by alan [SQL Query] [2020.07.21 17:38:09]


안녕하세요~~ maria db에서

예를들어 아래와 같은 SQL에서

서브쿼리 WHERE BB.am_id = AA.am_id

AA.am_id를 인식을 못합니다

괄호가 한번이면 인식을하는데 두번이면 인식이 안되더라구요

혹시 접근가능한 방법이 있을까요???

 

select (select COUNT(*) FROM ( SELECT BB.st_id, BB.pa_id
                                       FROM BB
                                       WHERE BB.am_id = AA.am_id
                                       GROUP BY BB.st_id )AS cnt

FROM AA

by pajama [2020.07.21 17:49:12]

FROM절 안에 쿼리에 AA를 쓰셔야되지 않을까요.

select COUNT(*) FROM ( SELECT BB.st_id, BB.pa_id
                                       FROM BB, AA
                                       WHERE BB.am_id = AA.am_id
                                       GROUP BY BB.st_id )AS cnt


by 마농 [2020.07.22 09:13:29]

서브쿼리에서 메인컬럼을 사용하려면 1 Depth 까지만 가능합니다. 2 Depth 이상 내려갈 수 없습니다.
이런 경우엔 쿼리를 수정하셔야 합니다.
과연 2 Depth 가 필요한지 검토하세요. 1 Depth 만으로도 가능한 경우가 많습니다.
 

SELECT (SELECT COUNT(DISTINCT bb.st_id)
          FROM bb
         WHERE bb.am_id = aa.am_id
        ) AS cnt
  FROM aa
;

 


by alan [2020.07.22 10:56:07]

답글 감사합니다 마농님~

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입