SQL JOIN으로 N:M 관계 풀기 | 학생-동아리 연결 테이블 예제
학생 1명이 여러 동아리에 가입할 수 있고, 동아리 1개에도 여러 학생이 가입할 수 있다면 두 테이블만으로는 관계를 깔끔하게 표현하기 어렵다. 이런 구조는 N:M 관계(Many-to-Many) 라고 부르고, 관계형 데이터베이스에서는 보통 연결 테이블을 하나 더 만들어서 해결한다.실무에서 JOIN이 자꾸 헷갈리는 이유도 여기서 시작되는 경우가 많다. 학생 테이블과 동아리 테이블만 보고 바로 연결하려고 하면 구조가 꼬이고, 중복 데이터가 늘어나고, 나중에 조회 쿼리도 애매해진다. 이 글에서는 MySQL 기준으로 N:M 관계를 왜 연결 테이블로 풀어야 하는지, 그리고 PRIMARY KEY, FOREIGN KEY, AUTO_INCREMENT가 왜 같이 등장하는지를 학생-동아리 예제로 정리한다.N:M 관계가 왜 ..