我想知道如何通过组合两个外键来继续更新列。
我有一个桌子,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;
然而,这只会给我一个恒定的价值。
真的很感激任何帮助!
答案 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