2017-04-06 5 views
0
내가 tot_sales가 판매원에 의해 처리되는 모든 주문 order_price 년대의 합계를 tot_sales 속성 업데이트 할

enter image description here오류 : <table_name>는 'UPDATE'의 대상으로 데이터

에 대한 별도의 소스로 모두 두 번 지정

이 업데이트 쿼리를 작성했습니다. 하지만 오류를 제공

# 1093 - 테이블 '세일즈맨'당신의 접근 방식을 사용하여 데이터

UPDATE salesman 
SET salesman.tot_sales = (SELECT SUM(orders.order_price) 
          FROM orders 
          INNER JOIN salesman ON orders.emp_id = salesman.emp_id 
          GROUP BY salesman.emp_id 
         ) 

답변

0

에 대한 별도의 소스로 'UPDATE'에 대한 목표와>로 모두 두 번 지정

UPDATE salesman s 
    SET s.tot_sales = (SELECT SUM(o.order_price) 
         FROM orders o 
         WHERE o.emp_id = s.emp_id 
        ); 

이 :하는 상관 하위 쿼리보다는 집계를 사용 종종 다음과 같이 작성됩니다 :

UPDATE salesman s LEFT JOIN 
     (SELECT o.emp_id, SUM(o.order_price) as total_price 
     FROM orders o 
     GROUP BY o.emp_id 
     ) o 
     ON o.emp_id = s.emp_id 
    SET s.tot_sales = o.total_price; 
+0

감사합니다. 그게 :) – Enzio