[액세스] 3개 이상의 테이블을 INNER JOIN 하는 방법
액세스에서 INNER JOIN
을 사용하는 방법은 MS-SQL 과 비슷하지만 조금 다릅니다.
우선 MS-SQL 에서의 INNER JOIN
사용 방법은 아래 글을 참고하시면 되구요.
[MSSQL] inner join 사용방법 정리
해당 방법을 리뷰하자면 아래와 같습니다.
SELECT * FROM TABLE_A A INNER JOIN TABLE_B B ON A.CODE=B.CODE
이 방법은 액세스에서도 똑같이 작동 하거든요? 그런데 액세스에서 테이블 3개를 INNER JOIN
하고 싶다면 어떻게 해야 할까요.
문제
단순하게 생각해서 INNER JOIN
아래와 같이 쭉 나열해 보았습니다.
SELECT * FROM TABLE_A A INNER JOIN TABLE_B B ON A.CODE=B.CODE INNER JOIN TABLE_C C ON B.CODE=C.CODE
그런데..
“쿼리식의 연산자가 없는 구문 오류입니다.”라는 메시지와 함께 처참하게 실패했습니다.
해결 방법
이런 저런 시도 끝에 드디어 방법을 알아 냈습니다. 그리고 그 결과물은 아래와 같습니다.
SELECT * FROM (TABLE_A A INNER JOIN TABLE_B B ON A.CODE=B.CODE) INNER JOIN TABLE_C C ON B.CODE=C.CODE
INNER JOIN
한 가상의 테이블을 괄호로 묶어 하나의 테이블 처럼 취급해주고, 거기에 세번째 테이블을 INNER JOIN
해주는 것입니다.
MS-SQL 에서는 그런거 없이 그냥 막 써도 되던데.. 액세스는 조금 복잡해지네요.
만약 네번째 테이블을 INNER JOIN
하려면? 아래와 같이 하면 되겠죠?
SELECT * FROM ( (TABLE_A A INNER JOIN TABLE_B B ON A.CODE=B.CODE) INNER JOIN TABLE_C C ON B.CODE=C.CODE ) INNER JOIN TABLE_D D ON C.CODE=D.CODE
끝.
댓글 남기기