나는 두 테이블 문서가 이러한부모 - 자식 SQL 쿼리 및 제한
DOCUMENT(id)
,ATTRIBUTE(name, value, doc_fk)
같은 속성을 표시합니다.
나는이 "추상적 인 쿼리"$state
및 $creationDate
두 가지 속성이 있습니다
select top 100 documents
where $state='COMPLETED'
order by $creationDate
처럼 작동하는 쿼리를 실행해야합니다.
한계는 문서가 아니라 속성이며 정렬 및 필터는 두 가지 다른 속성에 있습니다. 최종 쿼리는 필터링 된/정렬 된 속성뿐만 아니라 모든 문서 속성을 반환해야합니다.
매우 복잡한 쿼리로 이것을 작성할 수 있었고 더 나은 대안을 찾고 있습니다. 유용한 경우 내 솔루션을 게시 할 수 있지만, 아마도, 잘못된 방향으로 당신을 가리 키고 싶지 않습니다.
100 개 대신 1000 개를 추가하고 메모리에 필터/정렬을 추가하면 괜찮습니다. 필수 제한 인 100 대신 74와 같이 제한이 정확하지 않을 수도 있지만 너무 멀리는 아닙니다.
추가 "소프트"요구 사항 :
- 쿼리가 이상한 분석 함수는
- 는 JPA와 함께 작동합니다 모든 플랫폼에서 사용할 수없는 한 피해야 여러 데이터베이스 (오라클, MySQL과 SQLSERVER)로 작동합니다 (EclipseLink가 2.4.0 구현)
예상 출력이
DOC_ID ATTRIBUTE_NAME VALUE
123 state COMPLETED
123 creationDate 21/11/2012
123 userid someone
456 state COMPLETED
...
,536,913 같은 것입니다
내 대답을 확인하십시오. 도움이되는지 확인하십시오. – mwangi