728x90

서브쿼리 조건

inner join에 and로 조건 걸어서 from절에서 걸러냄

SELECT
  FAM1.EMP_NO AS 직원번호
, FAM1.FAM_NM AS 쌍둥이1
, FAM2.FAM_NM AS 쌍둥이2
FROM FAM_C FAM1
	INNER JOIN FAM_C FAM2
		ON FAM1.EMP_NO = FAM2.EMP_NO
AND FAM1.FAM_NM <> FAM2.FAM_NM      -- 쌍둥이 이름 같지않게
AND FAM1.REL_TYPE_CD = FAM2.REL_TYPE_CD
AND FAM1.REL_TYPE_CD = 'A27'        -- 자녀조건(A27) 충족
AND FAM1.BIRTH_YMD = FAM2.BIRTH_YMD -- 생년월일 같음=쌍둥이
;

 

Where절 조건

inner join만하고 조건은 where에 넣은 것

FROM FAM_C F1
    JOIN FAM_C F2 ON(F1.EMP_NO = F2. EMP_NO)
WHERE F1.FAM_NM <> F2.FAM_NM
AND F1.REL_TYPE_CD = 'A27'
AND F1.REL_TYPE_CD = F2.REL_TYPE_CD
AND F1.BIRTH_YMD = F2.BIRTH_YMD    
;

 

Q.

서브쿼리로 조건 걸어서 데이터 가져오는 거랑 WHERE절에서 조건 걸어서 데이터 가져오는거랑

뭐가 다를까?

 

A.

서브쿼리

 집합을 줄일 필요가 있을 때 사용

서브쿼리로 대상을 줄여놓고 메인쿼리와 결합되는 형태로 많이 사용

 

WHERE

다른 어플리케이션(ex:java,C)에서 조건 값을 받아야 하는 경우가 多

 

728x90
반응형

+ Recent posts