관계형 데이터베이스에서는 다양한 소스의 데이터를 결합하기 위해 테이블 조인이 필요한 경우가 많습니다. 외래 키는 일반적으로 이러한 관계를 정의하지만 항상 그런 것은 아닙니다. 이 가이드에서는 세 번째 중간 테이블을 사용하여 간접적으로 테이블을 조인하는 방법을 설명합니다.
세 개의 테이블 Forests
, Species
, Trees
을 상상해 보세요. Forests
숲 이름과 위치를 저장합니다. Species
나무 종과 나무 종류를 나열합니다. Trees
개별 나무의 종과 서식하는 숲을 포함하여 자세히 설명합니다.
Forests
과 Species
가 공유하는 나무를 바탕으로 함께하는 것이 목표입니다. 그러나 Forests
과 Species
사이에는 직접적인 외래 키 링크가 없습니다. 대신 Trees
은 Forests
과 Species
을 모두 참조하는 외래 키를 포함하는 브리지 역할을 합니다.
해결책은 Trees
테이블을 중개 링크로 사용하는 것입니다. Forests
을 통해 Species
과 Trees
을 결합함으로써 간접적으로 원하는 관계를 만들어갑니다.
이 SQL 쿼리는 간접 조인을 보여줍니다.
<code class="language-sql">SELECT Forests.Fo_name, Species.Sp_name, Species.Sp_woodtype FROM Forests INNER JOIN Trees ON Forests.Fo_name = Trees.Tr_forest INNER JOIN Species ON Trees.Tr_species = Species.Sp_name WHERE Forests.Fo_loc = 'ARTIC' ORDER BY Forests.Fo_name, Species.Sp_name;</code>
이 쿼리의 단계:
INNER JOIN
은 일치하는 포리스트 이름을 사용하여 Forests
과 Trees
를 연결합니다.INNER JOIN
는 종 이름 일치를 통해 Trees
과 Species
를 연결합니다.WHERE
'ARTIC' 지역의 숲으로 결과를 필터링합니다.ORDER BY
가독성을 위해 출력을 정렬합니다.이 방법은 공유 테이블을 브리지로 사용하여 직접적인 외래 키 연결 없이 테이블을 효과적으로 조인합니다. 테이블을 연결하는 공통 열을 식별하는 것은 이러한 간접 관계를 설정하는 데 중요하며 기존 외래 키 제약 조건 없이도 복잡한 조인 작업을 가능하게 합니다.
위 내용은 중간 테이블을 사용하여 외래 키 없이 테이블을 조인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!