2016-05-31 3 views
1

У нас есть две таблицы: products и orders, на самом деле мы сделали ошибку, и забыл вставить product_id в orders таблице и insterted product_sku, теперь мы попыталисьКак обновить значение уважаемого поля со связанными значениями

UPDATE `crm_order_products` SET product_id = 
(SELECT p.product_id FROM crm_products p 
LEFT JOIN crm_order_products o 
ON p.product_sku = o.product_sku) 
+0

Можете ли вы показать нам определения таблиц и некоторые данные образца? –

ответ

1

Текущее использование вашего JOIN неверно для обновления значения, так как вы можете получить более 1 строки из результата вашего запроса select, что приведет к ошибке. Вы должны использовать правильный JOIN, чтобы обновить значение в таблице. Попробуйте следующее:

UPDATE crm_order_products o 
    JOIN crm_products p ON p.product_sku = o.product_sku 
SET o.product_id = p.product_id 
+1

thanx alot !!! признательна !!! – SagarPPanchal

+0

@SagarPanchal: - Добро пожаловать! –

1

Попробуйте сделать UPDATE в сочетании с INNER JOIN:

UPDATE crm_order_products a 
INNER JOIN crm_products b 
    ON a.product_sku = b.product_sku 
SET a.product_id = b.product_id 
Смежные вопросы