집 >데이터 베이스 >MySQL 튜토리얼 >학생 정보 및 홀 이름을 검색하기 위해 SQL의 세 테이블을 효율적으로 INNER JOIN하는 방법은 무엇입니까?
SQL: INNER JOIN을 사용하여 여러 테이블의 데이터 결합
SQL의 INNER JOIN
은 공유 값을 기반으로 다양한 테이블의 정보를 결합하는 강력한 도구입니다. 이는 학생 정보, 홀 선호도 및 홀 이름과 관련된 이 예에서 볼 수 있듯이 관련 데이터 세트를 처리할 때 특히 유용합니다.
세 개의 테이블이 있다고 상상해 보세요. 하나는 학생 세부 정보를 담고 있고, 다른 하나는 학생회관 기본 설정(ID로 표시됨)을 담고 있으며, 세 번째 테이블은 해당 ID에 해당하는 홀 이름을 담고 있습니다. 실제 홀 이름과 함께 학생 정보를 표시하려면 INNER JOIN
.
이 세 테이블을 INNER JOIN
효율적으로 사용하는 방법은 다음과 같습니다.
<code class="language-sql">SELECT s.StudentID, s.FName, s.LName, s.Gender, s.BirthDate, s.Email, r.HallPref1, r.HallPref2, r.HallPref3, h.HallName FROM dbo.StudentSignUp AS s INNER JOIN RoomSignUp.dbo.Incoming_Applications_Current AS r ON s.StudentID = r.StudentID INNER JOIN HallData.dbo.Halls AS h ON r.HallPref1 = h.HallID;</code>
이 쿼리는 다음과 같이 작동합니다.
INNER JOIN
는 StudentSignUp
를 공통키로 사용하여 Incoming_Applications_Current
과 StudentID
를 연결합니다.INNER JOIN
는 Incoming_Applications_Current
(기본 설정 테이블에서) 및 Halls
(홀 테이블에서)를 사용하여 HallPref1
과 HallID
을 연결합니다.결과에는 첫 번째 홀 선호도 및 해당 이름과 함께 학생 정보가 표시됩니다. 예:
<code>John Doe | 923423 | Incoming Student | Foley Hall</code>
다양한 홀 선호도에 대한 쿼리 확장:
세 개의 홀 기본 설정과 이름을 모두 검색하려면 INNER JOIN
을 추가하여 쿼리를 확장할 수 있습니다.
<code class="language-sql">SELECT s.StudentID, s.FName, s.LName, s.Gender, s.BirthDate, s.Email, r.HallPref1, h1.HallName AS Pref1HallName, r.HallPref2, h2.HallName AS Pref2HallName, r.HallPref3, h3.HallName AS Pref3HallName FROM dbo.StudentSignUp AS s INNER JOIN RoomSignUp.dbo.Incoming_Applications_Current AS r ON s.StudentID = r.StudentID INNER JOIN HallData.dbo.Halls AS h1 ON r.HallPref1 = h1.HallID INNER JOIN HallData.dbo.Halls AS h2 ON r.HallPref2 = h2.HallID INNER JOIN HallData.dbo.Halls AS h3 ON r.HallPref3 = h3.HallID;</code>
이 향상된 쿼리는 Halls
테이블을 각 기본 설정 열에 대해 한 번씩 세 번 조인하여 학생회관 기본 설정 및 관련 이름에 대한 전체 보기를 제공합니다.
위 내용은 학생 정보 및 홀 이름을 검색하기 위해 SQL의 세 테이블을 효율적으로 INNER JOIN하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!