날짜 테이블에 해당하지 않는 row를 구하고 싶습니다. 0 1 430

by 정우성 [SQL Query] [2019.04.03 19:30:08]


a 테이블의 날짜가 날짜제한테이블 row에 해당되지 않는 것만 구하고 싶습니다. 
어떻게 하면 될까요?
select *
  from a
where 날짜 between (??)  

-- 날짜제한 테이블.a의 키의 여러 row 데이터가 있다
select b.시작날짜, b.종료날짜
  from 날짜제한_tb b
union all 
select c.시작날짜, c.종료날짜
  from 날짜제한_tb c

by 마농 [2019.04.04 08:48:23]
-- Not Exists
SELECT *
  FROM a
 WHERE NOT EXISTS (SELECT 1
                     FROM 날짜제한_tb b
                    WHERE a.날짜 BETWEEN b.시작날짜 AND b.종료날짜
                   )
;
-- Outer Join & Is Null 
SELECT a.*
  FROM a
  LEFT OUTER JOIN 날짜제한_tb b
    ON a.날짜 BETWEEN b.시작날짜 AND b.종료날짜
 WHERE b.시작날짜 IS NULL
;

 

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