본문 바로가기

DBMS/MySQL

[MySQL] SELECT 후 UPDATE 반영하기

수집된 데이터를 토대로 기존에 수집된 데이터를 수정 및 반영해야하는 경우가 있다.

 

일반적인 UPDATE ~ SET 방식이다.

 

UPDATE
	[테이블명]
SET
	[필드명 = 새로운 값]
WHERE
	[조건문]

 

이번에는 UPDATE ~ SELECT 방식이다.

 

UPDATE
	[테이블A],[Select 질의] B
SET
	[테이블A].필드 = B.필드
WHERE
	[테이블A].id = B.id

 

그렇다면 실제로 쓰여진 코드를 확인해보자.

 

UPDATE
	tb_purchase_order_detail pod,
	(SELECT 
	    count(*) as total_quantity, purchase_detail_seq
	FROM 
	    tb_inventory
	GROUP BY
	    purchase_detail_seq) i
SET
	pod.inventory_quantity = i.total_quantity
WHERE
	pod.purchase_detail_seq = i.purchase_detail_seq

 

쓰여진 코드는 생성된 재고 수량을 발주상세에 반영하는 코드 예제이다.