[액세스] 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

끝.