在插入表中需要类似别名的东西

时间:2015-01-15 17:05:49

标签: mysql

我想在表中插入一个值。但是,该值也来自该表。我想检查该表上是否有重复的密钥。由于此值也来自该表,因此查询表明列名称不明确。

$result2 = "INSERT INTO estock_saldo 
                (items, customer_id, quantity , reference_no, size)                 
            SELECT  
                items, '".$member_id."', '".$quantity[$i]."', reference_no, size                            
            FROM    
                estock_saldo
            WHERE   id in ({$order_id[$i]})
            ON DUPLICATE KEY 
            UPDATE estock_saldo.quantity = estock_saldo.quantity - '".$quantity[$i]."'";

            $res2 = $mysqli->query($result2);   
            if(!$res2){ printf("Errormessage 2: %s\n", $mysqli->error); die(); }

含糊不清来自estock_saldo.quantity。我试图别名列名称。但是,您无法在插入表中执行此操作。

1 个答案:

答案 0 :(得分:1)

问题仍然存在于下面显示的代码段中。您不能在INSERT语句中使用列别名。

INSERT INTO estock_saldo 
                (items, customer_id, quantity AS asquan
                                       <-- HERE

您尝试的内容将始终具有重复条目,因为您再次插入相同的记录。而不是INSERT语句,你实际上意味着要做UPDATE之类的

UPDATE estock_saldo SET 
quantity = quantity - '".$quantity[$i]."'"
WHERE   id in ({$order_id[$i]});