마스터 디테일 성 테이블에서 디테일 항목 리스트로 검색할때.. 0 2 1,461

by 쿼리초보 [2022.06.30 08:44:41]


마스터 디테일 1대다 관계에서 디테일 항목 검색..
 
마스터성 테이블 a
1대다로 역인 테이블 b 가 있는데요
 
 
테이블 a
AId
Name
형태이고
 
테이블b
Bid
Aid  - fk
Name
 
입니다
리스트를 테이블 a를 조회하는데
검색조건을 테이블 b의 네임으로 조회해야합니다.
 
이런경우 어떻게 조인을 걸어야 할까요
현재생각으론 리스트 애그 같은 함수 써서
비의 항목을 ,로 구분하여 리스트에 가져오고
아래 웨얼절로 검색하는 방법만 떠오르는데
혹시 더 좋은 방법이 있을까요?
 
디비는 오라클입니다
조언 부탁드립니다
 
 
 
by 마농 [2022.06.30 09:31:34]
-- 1. 조인 후 중복제거
SELECT DISTINCT a.aid, a.name
  FROM a
     , b
 WHERE a.aid = b.aid
   AND b.name = '검색어'
;
-- 2. 중복제거 후 조인
SELECT a.aid, a.name
  FROM a
     , (SELECT DISTINCT b.aid
          FROM b
         WHERE b.name = '검색어'
        ) b
 WHERE a.aid = b.aid
;
-- 3. IN 서브쿼리
SELECT a.aid, a.name
  FROM a
 WHERE a.aid IN (SELECT b.aid
                   FROM b
                  WHERE b.name = '검색어'
                 )
;
-- 4. EXISTS 서브쿼리
SELECT a.aid, a.name
  FROM a
 WHERE EXISTS (SELECT 1
                 FROM b
                WHERE b.name = '검색어'
                  AND b.aid = a.aid
               )
;

 


by 쿼리초보 [2022.06.30 12:11:44]

감사합니다..

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