집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 조건부 필터링을 사용하여 Left Join을 수행하는 방법은 무엇입니까?
데이터베이스 연결에서는 특정 필터링 조건을 적용하면서 여러 테이블의 데이터를 결합해야 하는 경우가 많습니다. 다음 시나리오를 고려해보세요.
settings
테이블에서 기본 설정을 검색하고, 필요한 경우 특정 역할에 대한 character_settings
테이블에서 역할별 설정을 검색하려고 합니다. 그러나 아래 쿼리는 역할 설정이 특정 값과 일치하는 경우에만 기본값을 반환하고 역할 설정이 정의되지 않은 경우 기본값을 무시합니다.
<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>
모든 기본 설정을 검색하고 가능한 경우 역할 설정을 가져오려면 필터 조건을 조인 절로 이동해야 합니다.
<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>
조인 조건에 WHERE
절을 배치하여 왼쪽 조인이 성공한 행만 결과 집합에 포함되도록 지정합니다. 이를 통해 역할별 설정 가능성을 고려하면서 기본 설정을 검색할 수 있습니다.
위 내용은 SQL에서 조건부 필터링을 사용하여 Left Join을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!