2013-08-26 3 views
1

트랜잭션 테이블의 타임 스탬프와 사용자 테이블의 타임 스탬프 간의 차이를 사용하여 트랜잭션 테이블의 열을 채우려고합니다. 아이디어는 거래가 일어난 사용자 경험의 어떤 시점에 반영하기 위해 날짜를 정상화하는 것 같은, (사용자가 트랜잭션이 처리 된, 즉 얼마나 많은 일에 가입 후) :조인 된 테이블에서 계산 된 값이있는 열을 추가 할 수 있습니까?

update transactions 
set days = ceil(extract(days from T.tdate - U.created_at)) +1 
from transactions T join users U on T.user_id=U.id 

을 어떤 이유로, 모든 행은 쿼리를 실행 한 후 "days"필드에서 동일한 숫자 (262)를 얻습니다.

+1

영향을주고 싶은 행을 제한하려면'where' 절을 추가해야합니다. – ntalbs

+0

@ntalbs 그걸 시도했지만 조인 조건과 동일한 조건을 사용하여 모든 행에 영향을 주려고합니다. – avyfain

+0

@ntalbs lol! 잘 잡으세요! – logixologist

답변

3
update transactions 
set days = ceil(extract(days from tdate - U.created_at)) +1 
from users U 
where user_id = U.id 
관련 문제