单个SQL查询,用于更新多个字段值

时间:2017-09-21 08:50:00

标签: mysql join sql-update

我在以下情况中遇到麻烦: 我得到了一些价值。假设我得到了1000。 我有一张表如下。

enter image description here

现在当我获得价值时,我需要一个会更新所有这个表的查询。 例如,我将运行,直到所有金额将被支付或它取得的价值变为零。 如果支付价值,则状态变为1。

更新表后看起来像这样 enter image description here

如果最后一个值大于零。而不是将它存储在任何变量上。

我这样做

$userval = 1000;
$sql = "
        update challan_1 t1,
        (
            SELECT x.id , SUM(y.bal) balance
            FROM (
                    SELECT *,amount - '$userval' bal FROM challan_1
                 ) x
            JOIN
                 (
                    SELECT *,paid - amount bal FROM challan_1
                 ) y
            ON
            y.id <= x.id GROUP BY x.id
        )t2 set t1.paid =balance WHERE t1.id = t2.id
      ";

echo $sql;

但它会给出以下结果。 enter image description here

1 个答案:

答案 0 :(得分:0)

我使用此查询并根据要求更新付费字段。

SELECT x.id , x.amount , x.amount as paid_amount , SUM(y.bal) as total, x.reciept_no
    FROM 
    ( 
        SELECT *,paid bal FROM challan_1 
    ) x 
    JOIN 
    ( 
        SELECT *,amount bal FROM challan_1 
    )y
    ON y.id <= x.id 
    GROUP BY x.id 
    HAVING total <= '500'