• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

V5 관련 where절 java logic구현 질문

22.07.18 17:11 작성 조회수 195

1


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
V5 주문조회 관련하여 질문드립니다.
 
Order과 OrderItem은 1:N 관계이며,
 
SELECT *
FROM order
LEFT JOIN orderItem
ON order.id = orderItem.id
 
를 다음 두번의 쿼리 형식을 이용하여 JAVA 단으로 로직을 구현한것이 V5라고 이해하고 있습니다.
 
SELECT *
FROM order;
 
SELECT *
FROM orderItem
WHERE orderItem.id in
(
SELECT id
FROM order
)
 
그런데, 다음 쿼리는 위와같이 두번의 쿼리 형식을 사용하여 JAVA 단으로 로직을 구현하기 난해합니다.
이미 서브쿼리의 결과는 aggregate 된 값이기 때문입니다.
 
SELECT *
FROM order
LEFT JOIN orderItem
ON order.id = orderItem.id
WHERE order.name = orderItem.itemName // -> 상품명과 주문이름이 같은 경우만 fetch
 
 
1. 위와 같은 경우(where절에 양쪽 field가 모두 존재하는 경우)를 JAVA 로직으로 해결 할 방법이 있는지
  1. JAVA 로직으로 해결할 방법이 올려놓으신 강의중에 있다면 대략적인 그 강의명을 알려주시면 찾아보겠습니다.
  2. 만약, 이미 올라와 있는 강의중에 해당 내용이 없다면, 평소 사용하시는 방식을 알려주시면 감사하겠습니다.
  3. 혹은 위와같은 경우엔 그냥 V6 형식을 평소 사용하시는지
2. 1번에 대한 해결책이 없더라도 혹시 LEFT OUTER JOIN이 아닌 INNER JOIN을 JAVA로 구현할 방법이 있는지
 
  1. JAVA 로직으로 해결할 방법이 올려놓으신 강의중에 있다면 대략적인 그 강의명을 알려주시면 찾아보겠습니다.
  2. 만약, 이미 올라와 있는 강의중에 해당 내용이 없다면, 평소 사용하시는 방식을 알려주시면 감사하겠습니다.
  3. 혹은 위와같은 경우엔 그냥 V6 형식을 평소 사용하시는지 질문 드립니당
 
 
 

답변 1

답변을 작성해보세요.

2

안녕하세요. mookiencar님

두번의 쿼리 형식으로 해결하기 어려운 경우들도 있습니다.

자바로 풀어서 해결하기 어려운 경우에는 네이티브(일반 SQL) 쿼리를 사용해서 처리하는 것이 방법입니다.

감사합니다.