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