나는 데이터 모델을 사용했습니다. MyDataObject.쿼리 실행 횟수 줄이기
각 MyDataObject에는 두 가지 데이터 유형 즉, A & List<BC>
. 이다
:
class MyDataObject {
String A;
List<BC> bc;
}
class BC {
String B;
String C;
}
지금, 나는 데이터베이스에서 데이터를 가져 오는거야.
A가 여러 B를 가질 수 있으며
(null의 가능성이 있으므로 단일 쿼리가 여기 nogood 조인 될 수 있습니다 C) B & C 사이의 일대일 매핑이 : DB의 Stucture 같은 것입니다.
첫 번째 쿼리에서 A를 사용하여 &리스트를 가져옵니다. 결과 집합은 같은 것입니다 : 나는 B에 대한 각 C를 가져했습니다 두 번째 쿼리에서
A1 B1
A1 B2
A1 B3
A2 B4
A2 B5....
, 즉
B1 C1
B2 C2
B3 C3....
문제는 쿼리 결과 집합에, 나는 & 목록을 설정할 수있어, like
하지만 두 번째 쿼리에서는 where 절에서 B의 id를 인수로 전달해야 Cs를 가져올 수 있습니다.
그래서, 각 A의, 나는 쿼리에서이 작업을 수행 할 수있는 방법 &는 C.
를 가져올의 B를 통과 쿼리를 실행했습니다 및 이후 단계의 최소한의 데이터 형 BC에서 C를 설정 ?
예, 그게 제가 이전에 한 일입니다. 하지만 C는 nullable이 될 수 있습니다. 따라서 B & C에 가입하면 C가 null이고 그 경우 B도 반환되지 않습니다. 미안 해요,이 질문을 놓쳤습니다. 질문이 업데이트되었습니다. – reiley
내 대답이 업데이트되었습니다. 이론적으로 당신이 원하는대로 작동해야하지만, 나는 그것을 시도하지 않은 것을 인정합니다. – DaaaahWhoosh
기술적으로는 제대로 작동해야하지만 제 시나리오는 질문에 설명 된대로 간단하지 않고 왼쪽 가입도 작동하지 않습니다. RCA를하는 이유. 감사합니다 – reiley