>데이터 베이스 >MySQL 튜토리얼 >모든 기본 설정 및 선택적 사용자 정의 설정을 검색하기 위해 필터링된 오른쪽 테이블을 사용하여 올바르게 Left 조인하는 방법은 무엇입니까?

모든 기본 설정 및 선택적 사용자 정의 설정을 검색하기 위해 필터링된 오른쪽 테이블을 사용하여 올바르게 Left 조인하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-22 08:04:15763검색

How to Properly Left Join with a Filtered Right-Hand Table to Retrieve All Default Settings and Optional Custom Settings?

필터링된 왼쪽 테이블을 사용한 왼쪽 조인

이 질문은 왼쪽 테이블의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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