by 미들타이거 [SQL Query] sql 조건 쿼리 INNER JOIN OUTER JOIN 조건식 [2019.05.20 21:07:27]
안녕하세요 잘못 생각하고 있나해서 질문드립니다.
예제 ) SELECT A.AAAA, A.BBB
FROM TABLE A
INNER JOIN(
SELECT B.AAA
, B.BBB
FROM TABLE B, TABLE C
WHERE B.AAA = C.AAA
AND B.AAA = A.AAA
)
기존 쿼리가 이런식으로 되있습니다 실행시 오류가나고요
안된다 생각이들고 수정하긴했는데 "AND B.AAA = A.AAA" 이 조건은 될수가 없는게 맞죠?
도움 부탁드립니다.
기본적으로 본문의 쿼리는 단순히 3개의 테이블을 조인하고자 하는 듯한데요. 혹시 B와 C를 먼저 조인하고 싶으셔서 서브쿼리를 사용하신 건가요?
일단 아래와 같이 기본적인 조인문을 작성하고, 조인 순서를 강제하는 힌트를 추가하는 방법을 쓸 수 있습니다. (DBMS 마다 힌트 문법이 다르니, 그 부분은 검색해 보세요)
SELECT A.AAAA, A.BBB FROM TABLE B INNER JOIN TABLE C ON C.AAA = B.AAA INNER JOIN TABLE A ON A.AAA = B.AAA;
서브쿼리를 꼭 써야하는 이유가 있다면, A.AAA = B.AAA 를 서브쿼리 바깥에 ON절로 만드세요.