2017-02-06 1 views
0

я получил stucked по следующему сценарию:Mysql - колонка обновления от других табличных данных без снижения на строки

таблицы Заказы Order_ID, order_date, order_customerid, order_state, order_city

Таблица Заказчикам customer_id , customer_city, customer_state

Мне нужно дублировать customer_city и customer_state в order_city и order_state, которое в настоящее время равно null. Я пробовал использовать следующее соединение:

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

Я запустил его снова, и все выглядит нормально! благодаря –

Смежные вопросы