2017-02-06 36 views
0

我得到了在以下情形stucked:MySQL的 - 從另一個表中的數據更新列,而不會降低行

表Orders 的order_id,order_date的,order_customerid,order_state,order_city

Customers表 CUSTOMER_ID ,customer_city,customer_state

我需要將customer_city和customer_state複製到order_city和order_state,它當前爲空。我嘗試使用以下連接:

select * 
from orders o 
inner join customers c 
on o.customerid = c.id 

然後使用更新查詢。但它似乎由客戶分組的訂單,所以後來它沒有反映訂單的實際數量,導致一些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

我再跑了它,它似乎是確定!謝謝 –

相關問題