2014-07-24 3 views
-1

많은 주제가 있다는 것을 알고 있지만 어떻게 작성해야합니까? 여기 :( 내 쿼리를 작동합니다. 단지Mysql 오류 1093 - FROM 절에서 업데이트 할 대상 테이블을 지정할 수 없습니다. 동일한 테이블의 열을 업데이트하십시오.

update site_s_client_base_price 
SET calculated_price_in_base_currency = 
SELECT (site_s_currencies.rate * site_s_client_base_price.supplier_price) from 
site_s_currencies, site_s_client_base_price 
WHERE site_s_currencies.currency_id=site_s_client_base_price.currency_id 

, 당신은 하위 쿼리를 고정하여이 문제를 해결할 수있는 경우이

답변

0

저를 도와주세요 비용을 다른 테이블에서 환율을하고 계산해야합니다. 당신을 내부 테이블 from에 외부 테이블을 언급 할 필요가 없습니다. 상관 하위 쿼리를 원할 경우 :

update site_s_client_base_price bp 
    SET calculated_price_in_base_currency = 
      (SELECT c.rate * bp.supplier_price 
      FROM site_s_currencies c 
      WHERE c.currency_id = bp.currency_id 
      ); 
+0

글쎄, 지금은 불평하지 않습니다뿐만 아니라 값을 설정하지 않고 사용할 수 없습니다. 항상 0 영향을받는 행 – sergeda

+0

값이 변경되지 않으면 MySQL은 "0 영향을받은 행"을보고합니다. 아마도 값이 이미 올바르게 업데이트되었을 것입니다. –

+0

예 @Gordon Linoff 그건 내 실수 였어. 도와 줘서 고마워. 투표 할 수 없습니다 :( – sergeda

1

당신은 seletc과 같은 테이블에서 갱신 잠겨 있기 때문에, 위의 예를 사용하거나

Update TABLE1 t1 set FIELD1= (select field1 from TABLE1 t2 where .....) 
+0

내가 선택한 동일한 값을 업데이트하려고하지 않습니다. 한 열에서 값을 가져 와서 다른 테이블의 값에 곱하고 다른 값을 값에 넣기를 원합니다. 이 표의 열 – sergeda

+0

동일한 개념으로, 동시에 표에서 선택 및 업데이트를 수행 할 수 없으면 임시 표를 만들어야합니다. – Bourkadi

+0

감사 정보 – sergeda

관련 문제