>데이터 베이스 >MySQL 튜토리얼 >LEFT JOIN을 사용하여 기본 및 문자별 설정을 검색하는 방법은 무엇입니까?

LEFT JOIN을 사용하여 기본 및 문자별 설정을 검색하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-22 07:47:08840검색

How to Retrieve Default and Character-Specific Settings Using a 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 JOINsettings에 일치하는 행이 없더라도 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.