집 >데이터 베이스 >MySQL 튜토리얼 >모든 기본 설정 및 선택적 사용자 정의 설정을 검색하기 위해 필터링된 오른쪽 테이블을 사용하여 올바르게 Left 조인하는 방법은 무엇입니까?
필터링된 왼쪽 테이블을 사용한 왼쪽 조인
이 질문은 왼쪽 테이블의 WHERE 절로 인해 예상한 결과가 발생하지 않는 두 테이블에서 데이터를 검색하는 방법에 대해 설명합니다. 목표는 설정 테이블에서 모든 기본 설정을 검색하고, 가능한 경우 특정 역할에 대한 역할별 사용자 정의 설정을 검색하는 것입니다.
원래 쿼리:
<code class="language-sql">SELECT `settings`.*, `character_settings`.`value` FROM (`settings`) LEFT JOIN `character_settings` ON `character_settings`.`setting_id` = `settings`.`id` WHERE `character_settings`.`character_id` = '1' </code>
그러나 이 쿼리는 지정된 문자(character_id = 1)에 대해 일치하는 문자별 설정이 있는 행만 반환합니다. 기본 설정을 포함하려면(역할별 설정이 없더라도) WHERE 절을 연결 자체로 이동해야 합니다.
<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 조인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!