2015-02-05 2 views
3

두 테이블 모두 user_pvvendors_pv에 동일한 기능을 가지고 있습니다.업데이트를 사용하여 두 테이블 중 하나를 업데이트하십시오.

users_pv => 가지고 사용자 및 밸런스

vendors_pv =>

가 이제 인 값에 기초하여 사용자 나 공급의 균형을 업데이트 할

벤더 및 그 밸런스를 가진다 일부 PHP 프로세스를 통해 얻은. 그래서 나는 기본적으로이 someid 값이 테이블 중 하나 일 수 있습니다이

update users_pv a INNER JOIN vendors_pv b set a.Balance = a.Balance + 
'240' , b.Balance = b.Balance + '40' where a.UserId = 'someid' or 
b.UserId = 'someid' 

같은 쿼리를 썼다. 그래서 내가 UserIdsomeid

니어 문제는 여기에 사용자를 업데이트해야 쿼리는 모든 사용자를 업데이트하고 vendors.Please 날 ​​

주를 해결하는 데 도움이 : 내가 시도 쿼리에0

를 업데이트 될 and으로 or를 대체하는 것은 당신이 그 기반으로 업데이트 할 수있는 기록이 있는지 확인하는 수를해야
+0

합류 부분에 누락되었습니다 –

+0

@MKhalidJunaid 좀 더 설명해 주시겠습니까 – user2979046

+0

트랜잭션 내에서이를 수행하는 저장 프로 시저를 만드는 것이 이상적입니다. 빠른 해결책을 제공하기 위해 update users_pv와 같은 사용자 ID를 통해 테이블에 가입하십시오. INNER JOIN vendors_pv b a.userid = b.userid –

답변

3

case 문구 업데이트 이 작업을 시도 할 수 있습니다 :

update users_pv a 
INNER JOIN vendors_pv b 
set a.Balance = 
(case when a.UserId = 'someid' then a.Balance + '240' else a.balance end) , 
b.Balance = 
(case when b.UserId = 'someid' then b.Balance + '40' else b.balance end) 

그리고 물론

, 당신은 쿼리에서 where a.UserId = 'someid' or b.UserId = 'someid'를 제거해야합니다.

0

경우에만 일을 업데이트 할 계산 레코드가있는 테이블.

이 방법을 사용하면 스크립트가 기존 사용자가 아닌 사용자를 업데이트할지 결정할 수 있습니다.

관련 문제