공부/개발자 기초 지식

[Tibero] 티베로 여러 테이블 select join 결과 update 하는 방법

bumcrush 2024. 4. 18. 15:52
반응형
[Tibero] 티베로 여러 테이블 select join 결과 update 하는 방법
(티베로 join update, 티베로 select join update, 티베로, select 결과 update)

 

 

A,B,C 각 3개의 테이블을 join한 결과를 

C 테이블에 UPDATE 치고 싶었다.

 

 

 

대충 아래와 같이 SELECT JOIN 한 결과를 C테이블에 업데이트 치고 싶다..

SELECT *
FROM TAB_A AS A, TAB_B AS B, TAB_C AS C 
WHERE A.ACODE = B.BCODE				-- A테이블 <-> B테이블 JOIN KEY 
AND	A.PRD_NO = C.PRO_NO					-- A테이블 <-> C테이블 JOIN KEY
AND A.CUS_NAME	= C.CUS_NAME		-- A테이블 <-> C테이블 JOIN KEY
AND A.ORDER_DATE = C.O_DATE			-- A테이블 <-> C테이블 JOIN KEY
AND	A.GENDER = 'M'					-- 기타 WHERE 조건절
AND A.PRIO = '001'					-- 기타 WHERE 조건절

 

 

아 뭔가 될 거 같은데, 어떻게 해야하지 고민하다가..

쿼리 짤 때 도움많이 준  CHAT GPT 랑 구글 GEMINI 한테 물어봤다 ㅋㅋㅋ

 

오 뭔가 될거 같아.. 해봤는데 

티베로에서는 해당 쿼리가 안먹힌다. (사실 오라클에서는 먹는지 안먹는지 모르겠다..)

-- CHAT GPT 가 알려준 쿼리
-- 하지만 티베로 에서 작동 안된다!!
UPDATE customers AS c
INNER JOIN orders AS o ON c.id = o.customer_id
INNER JOIN products AS p ON o.product_id = p.id
SET c.name = '새로운 이름',
	p.name = '새로운 제품 이름',
	o.order_date = '2024-04-16'
WHERE c.id = 123;

 

 

실망감을 가득 안고 다시 구글링을 열심히 해서

이것저것 삽질을 하다가, 해결 방안을 찾았다.

 

 

UPDATE문 자체에는 수정할 테이블 하나만 써야하고

WHERE 절에 EXISTS + 서브쿼리 를 사용하여 해결하였다.

신기한게, 서브쿼리 안에서도 C테이블 조인이 되더라..!

 

 티베로에서 여러 테이블 select join 결과 update 하시려는 분들 참고하시길

UPDATE TAB_C AS C
SET C.name = '새로운 이름',
    C.order_date = '2024-04-16'
WHERE EXISTS (	SELECT 1
			FROM TAB_A AS A, TAB_B AS B
			WHERE A.ACODE = B.BCODE				-- A테이블 <-> B테이블 JOIN KEY 
			AND	A.PRO_NO = C.PRO_NO				-- A테이블 <-> C테이블 JOIN KEY
			AND A.CUS_NAME	= C.CUS_NAME		-- A테이블 <-> C테이블 JOIN KEY
			AND A.ORDER_DATE = C.O_DATE			-- A테이블 <-> C테이블 JOIN KEY
			AND	A.GENDER = 'M'					-- 기타 WHERE 조건절
			AND A.PRIO = '001'					-- 기타 WHERE 조건절
);

 

 

티베로 / tibero join update / 티베로 여러 테이블 select join update / 티베로 update 

반응형
  • 현재글[Tibero] 티베로 여러 테이블 select join 결과 update 하는 방법