union all 0 1 846

by 김서준 [2015.10.05 20:51:32]


SELECT *
(
SELECT '1' AS FLAG,
AT
FROM AAA
UNION ALL
SELECT '2' AS FLAG,
BT
FROM BBB
)
=================== 이쪽은 아이바티스로 구분해 줄것임.
WHERE FLAG=1
AND AT ='1' 
====================
WHRER FLAG=3
AND BT ='3
=================

두개의 테이블이 있습니다..첫번째는 두개의 테이블 합을 보여주고

두번째는 첫번쨰 쿼리값을 파라미터로 받을꺼고요

세번쨰는 두번째는 쿼리값을 파라미터로 받을껀데요..

저런식으로 짜면 되는건지요?

by 창조의날개 [2015.10.06 09:14:14]

 

저런식(?)으로 짜도 원하는 결과를 얻을 수는 있을거 같습니다.

 

그렇지만 WHERE 조건에 따라서 가져오는 테이블 자체가 분리 되는데.. 구지 UNION으로 붙여서 가져온다면.. 필요없는 테이블들의 데이터 까지 모두 가져오기 때문에 속도 저하를 초래 할것 같습니다.

 

어차피 마이바티스로 WHERE 조건을 분리 한다면 차라리 쿼리문 자체를 분리해서 필요한 테이블만 읽어 들이는게 좋을 것 같습니다.

 

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