-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
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
FROM order
LEFT JOIN orderItem
ON order.id = orderItem.id
를 다음 두번의 쿼리 형식을 이용하여 JAVA 단으로 로직을 구현한것이 V5라고 이해하고 있습니다.
SELECT *
FROM order;
FROM order;
SELECT *
FROM orderItem
FROM orderItem
WHERE orderItem.id in
(
SELECT id
FROM order
)
그런데, 다음 쿼리는 위와같이 두번의 쿼리 형식을 사용하여 JAVA 단으로 로직을 구현하기 난해합니다.
이미 서브쿼리의 결과는 aggregate 된 값이기 때문입니다.
SELECT *
FROM order
FROM order
LEFT JOIN orderItem
ON order.id = orderItem.id
WHERE order.name = orderItem.itemName // -> 상품명과 주문이름이 같은 경우만 fetch
1. 위와 같은 경우(where절에 양쪽 field가 모두 존재하는 경우)를 JAVA 로직으로 해결 할 방법이 있는지
- JAVA 로직으로 해결할 방법이 올려놓으신 강의중에 있다면 대략적인 그 강의명을 알려주시면 찾아보겠습니다.
- 만약, 이미 올라와 있는 강의중에 해당 내용이 없다면, 평소 사용하시는 방식을 알려주시면 감사하겠습니다.
- 혹은 위와같은 경우엔 그냥 V6 형식을 평소 사용하시는지
2. 1번에 대한 해결책이 없더라도 혹시 LEFT OUTER JOIN이 아닌 INNER JOIN을 JAVA로 구현할 방법이 있는지
- JAVA 로직으로 해결할 방법이 올려놓으신 강의중에 있다면 대략적인 그 강의명을 알려주시면 찾아보겠습니다.
- 만약, 이미 올라와 있는 강의중에 해당 내용이 없다면, 평소 사용하시는 방식을 알려주시면 감사하겠습니다.
- 혹은 위와같은 경우엔 그냥 V6 형식을 평소 사용하시는지 질문 드립니당
답변을 작성해보세요.
2
김영한
지식공유자2022.07.20
안녕하세요. mookiencar님
두번의 쿼리 형식으로 해결하기 어려운 경우들도 있습니다.
자바로 풀어서 해결하기 어려운 경우에는 네이티브(일반 SQL) 쿼리를 사용해서 처리하는 것이 방법입니다.
감사합니다.
답변 1