2015-03-06 8 views
1

Я пытаюсь вычесть значения из таблицы оплаты и таблицы order1. Это ошибка «Подзапрос возвращает более 1 строки»Вычесть два значения из разных таблиц

Как я могу вычесть два значения из другой таблицы?

Операция должна быть такой:

всего (от Заказ1 таблицы) = общее (от Заказ1 таблицы) - сумма (от оплаты таблицы)

$amount=$_POST['amount']; //payment table 
//code inserting values in payment table  

//code for updating order1 table 
mysql_query("UPDATE order1 
     SET total=(SELECT total from order_details 
        WHERE order_id='$order_id')- $amount 
     WHERE order_id= '$order_id' 
     ")or die(mysql_error()); 
+0

Если есть несколько строк order_details для order_id, общее значение которого вы хотите сохранить в order1? – jarlh

+0

Я хочу обновить общее значение из order1 после добавления сделанного платежа: total (from order1) = total (from order1) - сумма (из таблицы платежей) – kobayashi

ответ

1

попробовать этот запрос:

 UPDATE order1 as o 
    join order_details as d on o.order_id=d.order_id and o.order_id='$order_id' 
    set o.total=d.total - $amount 
+0

Это ответ, который я ищу. Спасибо – kobayashi

+0

, вы очень желанны. – jfun

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