简体   繁体   English

更新内连接两个表

[英]Update Inner Join two tables

** Table Inputs** ** 表格输入**

(id_inpits, name, quantity_inputs)

Table Outputs `(id_outputs, name_outputs, quantity_outputs, quantity_disponible)表输出`(id_outputs、name_outputs、quantity_outputs、quantity_disponible)

when I want to update the quantity_output , and calculate the quantity_disponbile当我想更新quantity_output ,并计算quantity_disponbile

knowing that : quantity_disponbile = quantity_inputs - quantity_output知道: quantity_disponbile = quantity_inputs - quantity_output

I tried with :我试过:

if(!empty($_POST['do'])) {

    $m_id = $_POST['id_output'];

    $quantity_outputs = $_POST["quantity_outputs"];

    $sql = $db->query("UPDATE outputs AS o INNER JOIN inputs As i ON i.id_input = o.inputs_id  SET o.quantity_dispo = 'select quantity_inputs from inputs - FROM (select quantity_outputs from outputs )', o.quantity_outputs = '$quantity_outputs'  WHERE o.id_output =' $m_id'"); 

    if(!$sql) {
        die(mysql_error());
    }
}

One suggestion: quantity_disponbile is supposed a calculated field from both table.一个建议:quantity_disponbile 应该是两个表中的一个计算字段。 So split the logic into two: one select query and one update query.所以把逻辑一分为二:一个是选择查询,一个是更新查询。 The update query just need to update the quantity_output, and the select query can be like:更新查询只需要更新quantity_output,select查询可以是这样:

select 
  i.quantity_inputs -  o.quantity_output = quantity_disponible
from output o 
    inner join input i on i.id_inpits = o.inputs_id

I don't correct the typo anyway反正我不改正错字

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM