Php 需要一个update语句,将mysql中不同表中的两个列值相乘

Php 需要一个update语句,将mysql中不同表中的两个列值相乘,php,mysql,database,Php,Mysql,Database,我有两张桌子,顾客和牛奶,如下所示 顾客 牛奶 我需要一个更新查询,将价格、牛奶字母相乘,并将其存储在mprice中,其中customer\u id=cid 这是错误的insert语句,我需要将其更改为update语句 $cid = $_POST['cid']; $milk_letters = $_POST['milk_letters']; $sql = "INSERT INTO milk (customer_id, milk_letters, milk_date) VALUES

我有两张桌子,顾客和牛奶,如下所示

顾客

牛奶

我需要一个更新查询,将价格、牛奶字母相乘,并将其存储在mprice中,其中customer\u id=cid

这是错误的insert语句,我需要将其更改为update语句

$cid = $_POST['cid'];
$milk_letters = $_POST['milk_letters'];
$sql = "INSERT INTO milk (customer_id, milk_letters, milk_date)
        VALUES ('$cid','$milk_letters', NOW())";
dbQuery($sql);  
$sql2 = "INSERT INTO milk SELECT SUM(price * milk_letters) as mprice FROM customers , milk WHERE customers.cid = '$cid' and milk.customer_id = '$cid'";
    $result2 = dbQuery($sql2);

您可以在一个查询而不是两个查询中完成此操作

INSERT INTO milk (customer_id, milk_letters, milk_date, mprice)
SELECT {$cid}, {$milk_letters}, NOW(), customers.price * {$milk_letters}
FROM customers
WHERE customers.cid = {$cid}

请看一下:如果要修改现有行,请使用UPDATE,不插入。好的,下一步我要做的是添加特定客户的所有mprice,即在customers中再添加一列合计,并添加mprice,其中cusoter_id=cid类似于UPDATE customers SET total=SELECT SUMmprice FROM milk where milk.cid=customers.cid-尽管从编程的角度来看,计算更好此值不是存储它-您可以创建一个视图创建视图customertotals作为SELECT customer.cid,milk.milk_letters*customers.price作为milktotal组BY customer.cid-然后只使用SELECT cid,milktotal FROM customertotals
$cid = $_POST['cid'];
$milk_letters = $_POST['milk_letters'];
$sql = "INSERT INTO milk (customer_id, milk_letters, milk_date)
        VALUES ('$cid','$milk_letters', NOW())";
dbQuery($sql);  
$sql2 = "INSERT INTO milk SELECT SUM(price * milk_letters) as mprice FROM customers , milk WHERE customers.cid = '$cid' and milk.customer_id = '$cid'";
    $result2 = dbQuery($sql2);
INSERT INTO milk (customer_id, milk_letters, milk_date, mprice)
SELECT {$cid}, {$milk_letters}, NOW(), customers.price * {$milk_letters}
FROM customers
WHERE customers.cid = {$cid}