2012-01-31 5 views
1

mysql 데이터베이스의 다양한 플랫폼에 대한 매개 변수를 저장하는 구성 시스템을 사용하고 있습니다. 표는 '일부 vlaue'Mysql, Doctrine 1.2 및 복잡한 가입 쿼리

그래서 나는이 생각 조인이에 =이 settings(id, desc, value), settings_overrides(id, settings_id, value, platform_id), platform (id, platform_key, platform_desc).

내가 무엇을 찾고하는 모든 설정의 값 및 platofrm_key은 무시 만 그 값을 얻을 수있는 방법이다 이걸 가져 오는 가장 좋은 방법은 확실치 않습니다. 이 시점에서 내가 얻을 수있는 것은 모든 테이블의 값은 platform_key = 'some value'였습니다. 그러나 그것은 내가 찾고있는 것이 아닙니다. 이견있는 사람?

미리 감사드립니다.

답변

0

SELECT의 LEFT JOIN 및 CASE 문을 사용하는 방법 중 하나가 있습니다. 예 :

select 
    id, 
    desc, 
    case so.value when NULL then s.value else so.value end case as setting_value 
from settings s 
left join settings_overrides so on so.settings_id = s.id and platform_key = 'some value'