2013-08-05 4 views
0

에 가입하세요.최대 절전 모드의 나는 다음과 같은 테이블이 있다고 가정 해 봅시다

select Table1.Id, Table1.Name, Table2.Value 
from Table1 
left Join Table1.Table2 
where Table1.Id in (?) 
and Table2.key = 'someKey' 
:

나는 가능한 경우, 표 2 또는 null 값에 특정 키에 대한 정보를 정기적으로 표 2에 대한 기록,이 같은 일이 존재하지 않는 경우는, 표 1에서 모든 ID를 얻을 것이다 명명 된 쿼리가 필요

그러나이 쿼리는 Table2에 Table1의 레코드에 대한 데이터가있는 경우에만 결과를 가져옵니다.

<map name="Table2" table="Table2" cascade="all-delete-orphan" inverse="true" lazy="true" batch-size="20"> 
    <cache usage="nonstrict-read-write"/> 
    <key column="ID"/> 
    <index column="KEY" type="string"/> 
    <one-to-many class="somePersistentClass"/> 
</map> 

어떻게 내가 무엇을해야하는 쿼리를 작성 할 수 있습니다 뭔가 등

은 이미 표 1과 표 2 사이의 관계가 설정 한? 그러나

select Table1.Id, Table1.name, Table2.Value 
from Table1 
left Join Table2 on Table1.id = Table2.id and Table2.key = 'someKey' 
and Table1.Id in (....) 

, 내가 명명 된 쿼리가 외부 I는 표 2에서 어떤 결과가 없을 때 나는 가정, null 값을 얻을 수 있도록 참여하게하는 방법을 찾을 수 없습니다 : DB2를 들어 여기에 내가 필요를위한 작업 쿼리입니다 조인에있는 ID와 별도로 KEY로 Table2를 필터링해야합니다.

답변

0

음,

select Table1.Id, Table1.Name, Table2.Value 
from Table1 
left outer Join Table1.Table2 with Table2.key = 'someKey' 
where Table1.Id in (?) 

이상한 것은 내가 최대 절전 모드의 문서에서이를 발견하지 못했지만, 잘, 지금 내가 무엇을 기대하고있어 ... 내 자신의 질문에 대한 답을 발견 연구의 비트 후 .