基于两个外键更新SQL中的列

时间:2017-06-08 00:19:20

标签: mysql

我想知道如何通过组合两个外键来继续更新列。

我有一个桌子,FoodPackage,看起来像这样:

create table FoodPackage(
PackageNumber int primary key auto_increment,
name varchar(45),
price int);

另一个表,Product,如下所示:

create table Product(
ProductID int primary key auto_increment,
Category varchar(45),
ProductName varchar(45),
Price int,
Allergy varchar(45));

最后,Orders,看起来像这样:

create table Orders(
Ordernumber int primary key auto_increment,
PackageNumber int not null,
ProductID int not null,
UserID int not null,
Frequency int,
TotalPrice int,
OrderStatus varchar(45),
 FOREIGN KEY(PackageNumber)
    REFERENCES FoodPackage(PackageNumber),
 FOREIGN KEY(ProductID)
    REFERENCES Product(ProductID),
 FOREIGN KEY(UserID)
    REFERENCES Users(UserID));

我想要做的是根据FoodPackage.price和Product.Price组合的值更新totalprice列。我尝试过使用这样的更新语句:

UPDATE Orders, FoodPackage, Product SET Orders.TotalPrice= FoodPackage.Price + Product.Price;

然而,这只会给我一个恒定的价值。

真的很感激任何帮助!

1 个答案:

答案 0 :(得分:0)

您需要在表格之间加入条件。

UPDATE Orders AS o
JOIN FoodPackage AS f ON o.PackageNumber = f.PackageNumber
JOIN Product AS p ON o.ProductID = p.ProductID
SET o.TotalPrice = f.Price + p.Price