반응형

마일리지를 가져올때 milage 테이블에 업데이트를 시키고 값을 가져오고 있는데 이렇게 하지말고 mileage_history의 값을 매번 더하고 빼서 가져와보자.쿼리를 확인해보자.

 

select userid, sum(mileage_plus)-sum(mileage_minus) from mileage_history group by userid ;

 

 

이렇게하면 사용자별로 마일리지를 가져올 수 있다. 그런데 이 값을 매번 이렇게 쿼리를 날려서 가져오지 말고 이 값들을 저장하고 있는 VIEW를 만들어 보자.

 

mysql의 view를 이용하면 자주 사용하고 값이 유동적인 테이블의 값들을 원하는 쿼리로 만들어서 사용할수 있다. 위의 쿼리로 view를 만들어보자.

 

create view user_mileage as
select userid, sum(mileage_plus)-sum(mileage_minus) from mileage_history mh  group by userid ;

 

view를 만드는 법은 아주 간단하다. 중복된 view이름만 없으면 등록할 수 있다. 이제 view를 쿼리해보자.

 

select * from user_mileage ;

 

 

이렇게 하면 맨 처음에 적어 둔 mileage_histoty에서 값을 가져오는 결과값과 똑같은 값이 나오는 것을 확인할 수 있다. 물론 mileage_history 테이블에 새로운 값이 들어오거나 수정이 되면 실시간으로 반영된다. 그런 테스트는 직접 해보자. 내가 된다고 하니 되겠지 하지 말고 직접 꼭 확인해 보도록 하자.

 

반응형

+ Recent posts