상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - MySQL에서 many-to-many 관계에서 데이터를 조회할 때 JOIN을 사용하는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
MySQL에서 many-to-many 관계를 처리할 때, 일반적으로 세 개의 테이블이 필요합니다. 두 개의 주요 테이블과 이들을 연결하는 중간 테이블(<a href='https://sangseek.com/sangseeks/조인 테이블/ko'>조인 테이블</a>)이 필요합니다. 이 구조를 통해 두 개의 테이블 간의 다대다 관계를 표현할 수 있습니다. 예를 들어, 학생과 수업 간의 관계를 생각해 보겠습니다. 한 학생이 여러 수업을 수강할 수 있고, 한 수업에 여러 학생이 등록할 수 있습니다. 테이블 구조 <a href='https://sangseek.com/sangseeks/예시/ko'>예시</a> 1. 학생 테이블 (students) - `student_id` (기본 키) - `name` 2. 수업 테이블 (courses) - `course_id` (기본 키) - `course_name` 3. 학생-수업 조인 테이블 (<a href='https://sangseek.com/sangseeks/student_course/ko'>student_course</a>s) - `student_id` (외래 키, students 테이블의 student_id) - `course_id` (외래 키, courses 테이블의 course_id) 이러한 구조를 통해 학생과 수업 간의 관계를 정의할 수 있습니다. 데이터 조회를 위한 <a href='https://sangseek.com/sangseeks/JOIN 사용/ko'>JOIN 사용</a> 이제 학생과 그들이 수강하는 수업을 조회하고 싶다고 가정해 보겠습니다. 이 경우, `JOIN`을 사용하여 세 개의 테이블을 연결할 수 있습니다. <a href='https://sangseek.com/sangseeks/INNER JOIN/ko'>INNER JOIN</a> 사용 예시 ```sql SELECT s.student_id, s.name, c.course_name FROM students s INNER JOIN student_courses sc ON s.student_id = sc.student_id INNER JOIN courses c ON sc.course_id = c.course_id; ``` 위의 쿼리는 다음과 같은 작업을 수행합니다: 1. `students` 테이블에서 <a href='https://sangseek.com/sangseeks/학생 정보/ko'>학생 정보</a>를 가져옵니다. 2. `student_courses` 테이블과 `INNER JOIN`을 통해 학생과 수업 간의 관계를 연결합니다. 3. `courses` 테이블과 다시 `INNER JOIN`을 통해 각 학생이 수강하는 수업의 <a href='https://sangseek.com/sangseeks/이름/ko'>이름</a>을 가져옵니다. 이 쿼리의 결과는 각 학생과 그들이 수강하는 수업의 목록을 보여줍니다. LEFT JOIN 사용 예시 때때로 모든 학생을 보여주고, 수업을 수강하지 않는 학생도 포함하고 싶을 수 있습니다. 이 경우 `LEFT JOIN`을 사용할 수 있습니다. ```sql SELECT s.student_id, s.name, c.course_name FROM students s LEFT JOIN student_courses sc ON s.student_id = sc.student_id LEFT JOIN courses c ON sc.course_id = c.course_id; ``` 이 쿼리는 모든 학생을 포함하며, 수업을 수강하지 않는 학생의 경우 `course_name`은 `NULL`로 표시됩니다. WHERE 절을 통한 필터링 특정 조건에 맞는 데이터를 조회하고 싶다면 `WHERE` 절을 추가할 수 있습니다. 예를 들어, 특정 수업을 수강하는 학생을 조회하고 싶다면 다음과 같이 쿼리를 작성할 수 있습니다. ```sql SELECT s.student_id, s.name FROM students s INNER JOIN student_courses sc ON s.student_id = sc.student_id INNER JOIN courses c ON sc.course_id = c.course_id WHERE c.course_name = 'Mathematics'; ``` 이 쿼리는 'Mathematics' 수업을 수강하는 모든 학생의 ID와 이름을 반환합니다. 결론 MySQL에서 many-to-many 관계를 처리할 때 `JOIN`을 사용하여 관련 데이터를 효율적으로 조회할 수 있습니다. INNER JOIN과 LEFT JOIN을 적절히 활용하여 필요한 데이터를 필터링하고, 다양한 조건을 추가하여 원하는 결과를 얻을 수 있습니다. 이러한 기법은 데이터베이스 설계와 쿼리 작성에서 매우 중요한 부분이며, 복잡한 데이터 관계를 효과적으로 관리하는 데 필수적입니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기