2013-10-09 7 views
0

Я хочу обновить столбец total в таблице: tbl_orders, умножив столбец quantity на столбец cost.MySQL - несколько двух столбцов, обновление в одной таблице

UPDATE `tbl_orders` SET 
    total = (SELECT quantity * cost AS n1 FROM `tbl_orders` WHERE orderid = 167 LIMIT 1) 
WHERE orderid= 167 LIMIT 1 

Я сделал подзапросы обновления раньше, но ошибка MySQL возвращает:

Вы не можете указать целевую таблицу 'tbl_orders' для обновления в ЕКЕ

Может ли кто-нибудь увидеть, что я делаю неправильно?

ответ

1

JOIN это вместо этого.

UPDATE tbl_orders a 
     INNER JOIN 
     (
      SELECT orderid, quantity * cost totalCost 
      FROM tbl_orders 
      WHERE orderid = 167 
     ) b ON a.orderid = b.orderid 
SET  a.total = b.totalCost 
WHERE a.orderid = 167 

, если вы хотите обновить все orderid, удалить все WHERE пункт.

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