집 >데이터 베이스 >MySQL 튜토리얼 >모든 사람과 관련 두려움을 검색하기 위해 LEFT JOIN을 사용하여 MySQL에서 세 개의 테이블을 올바르게 조인하는 방법은 무엇입니까?
MySQL LEFT JOIN을 사용한 다중 테이블 조인
이 시나리오에서는 'Persons' 테이블 3개를 조인해야 하는 문제에 직면합니다. , '두려움' 그리고 '사람_공포'. 목표는 두려움이 없는 사람이 있더라도 'Persons' 테이블의 모든 기록을 관련 두려움과 함께 표시하는 것입니다.
처음에 제공된 LEFT JOIN 쿼리는 'Person_Fear.PersonID'를 'Person_Fear.PersonID'와 조인하려고 시도합니다. Person_Fear.FearID'로 인해 잘못된 결과가 발생합니다. 올바른 접근 방식은 적절한 외래 키 관계를 기반으로 'Person_Fear'를 'Persons' 및 'Fears'와 결합하는 것입니다.
해결책:
SELECT Persons.Name, Persons.SS, Fears.Fear FROM Persons LEFT JOIN Person_Fear ON Person_Fear.PersonID = Persons.PersonID LEFT JOIN Fears ON Person_Fear.FearID = Fears.FearID
이 수정된 쿼리는 효과적으로 'Persons'를 조인합니다. 'Person_Fear' 및 'Fears'는 각각의 외래 키를 통해 이루어집니다. 'Persons'와 'Person_Fear' 사이의 LEFT JOIN은 관련된 두려움이 있는지 여부에 관계없이 'Persons' 테이블의 모든 레코드가 포함되도록 보장합니다.
대체 솔루션:
SELECT Persons.Name, Persons.SS, Fears.Fear FROM Persons LEFT JOIN Person_Fear INNER JOIN Fears ON Person_Fear.FearID = Fears.FearID ON Person_Fear.PersonID = Persons.PersonID
이 대체 접근 방식은 'Person_Fear'와 'Person_Fear' 사이의 INNER JOIN을 활용합니다. 관련 두려움을 필터링하는 '두려움'입니다. 'Persons'를 사용한 후속 LEFT JOIN은 여전히 모든 개인이 결과에 포함되도록 보장합니다.
위 내용은 모든 사람과 관련 두려움을 검색하기 위해 LEFT JOIN을 사용하여 MySQL에서 세 개의 테이블을 올바르게 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!