집 >데이터 베이스 >MySQL 튜토리얼 >LEFT JOIN을 사용하여 기본 및 문자별 설정을 검색하는 방법은 무엇입니까?
LEFT JOIN을 사용하여 기본 및 문자별 설정을 효율적으로 검색
이 예에서는 기본 설정을 검색하는 방법과 해당하는 경우 LEFT JOIN
을 사용하여 문자별 재정의를 수행하는 방법을 보여줍니다. 원래 쿼리에서는 기본값을 제외하고 문자별 설정만 반환했습니다.
두 가지를 모두 검색하는 핵심은 WHERE
절의 위치를 올바르게 지정하는 것입니다. 조인 이후 필터링하는 대신 조인 조건 내 문자 ID 필터를 통합하세요.
<code class="language-sql">SELECT settings.*, character_settings.value FROM settings LEFT JOIN character_settings ON character_settings.setting_id = settings.id AND character_settings.character_id = '1';</code>
이 수정된 쿼리는 LEFT JOIN
테이블과 settings
테이블 사이에서 character_settings
을 수행합니다. ON
절은 일치하는 setting_id
만 조인되도록 하고 character_id
이 '1'인 레코드로 조인을 제한합니다. 결정적으로 LEFT JOIN
는 settings
에 일치하는 행이 없더라도 character_settings
테이블의 모든 행이 결과에 포함되도록 보장합니다.
결과 데이터 세트는 다음과 유사합니다.
<code class="language-php">array( 0 => array('somekey' => 'keyname', 'value' => 'thevalue'), // Default + Character-specific (if exists) 1 => array('somekey2' => 'keyname2', 'value' => null), // Default only 2 => array('somekey3' => 'keyname3', 'value' => null) // Default only );</code>
null이 아닌 value
행은 기본 설정과 문자별 설정을 모두 나타냅니다. NULL
열의 value
값은 해당 특정 키에 대해 기본 설정만 존재함을 나타냅니다.
위 내용은 LEFT JOIN을 사용하여 기본 및 문자별 설정을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!