2017-02-06 3 views
0

나는 다음과 같은 시나리오를 stucked있어 감소하지 않고 다른 테이블의 데이터에서 업데이트 칼럼 : ORDER_ID, ORDER_DATE, order_customerid, order_state, order_cityMySQL은 - 행

테이블 고객에게

테이블 주문을 CUSTOMER_ID을 , customer_city, customer_state

customer_city 및 customer_state를 order_city 및 order_state에 복제해야하며 현재 null입니다. 다음 조인을 사용해 보았습니다.

업데이트 쿼리를 사용했습니다. 그러나 고객별로 주문을 그룹화하는 것처럼 보이므로 실제 주문 수를 반영하지 않아 일부 order_city 및 order_state가 비어있게됩니다.

같은 고객의 주문이 많다는 것을 알고 주문 테이블에서 모든 주문을 업데이트하려면 어떻게해야합니까?

+0

무엇 전체 쿼리가 생겼는데? – Jhorra

답변

0

multi-table update syntax을 사용할 수 있습니다. 이 같은

무언가가 당신을 위해 작동합니다 :

update orders 
    inner join customers on customers.customer_id = orders.order_customerid 
set orders.order_state = customers.order_state, 
    orders.order_city = customers.order_city 
where orders.order_state is null 
    or orders.order_city is null 
+0

부분적으로 작동했습니다. 주문에 4090 개 항목이 있지만 2400 개만 업데이트했습니다. 그룹화 (ON)가 모든 주문을 고려하지 않고 고객별로 그룹화 한 첫 번째 또는 마지막 주문을 고려하지 않았기 때문일 수 있습니다. –

+0

나는 그것을 다시 달렸다. 그리고 그것은 ok 인 것처럼 보인다! 감사 –