gpt4 book ai didi

MySQL触发器比较不同表中的2个值

转载 作者:行者123 更新时间:2023-11-29 17:54:22 27 4
gpt4 key购买 nike

我是 MySQL 新手。

我想创建一个触发器,将招标表中的成本与招标表中的成本进行比较,如果招标表中的成本大于招标表中的成本,则会在KPI表中给出静态分数。

投标表(ID、名称、费用)

招标请求表(ID、名称、预估成本、供应商 ID、招标 ID)

KPI表(ID、成本)

supplier_performance(KPI_ID、tender_ID、tender_request_ID)

当我在请求表中插入一行时,出现以下错误:

#1054 - Unknown column 'tender_request.TenderID' in 'where clause' 

如何纠正语法错误?

BEGIN
SET @Ecost=(SELECT `estimated_cost` FROM tender where `tender`.`Tender_ID`=`tender_request`.`TenderID`);

SET @cost=(SELECT `cost` FROM tender_request where `tender`.`Tender_ID`=`tender_request`.`TenderID`);


IF(@Ecost>@cost) then
UPDATE `kpi` set kpi.Cost=10 WHERE `kpi`.KPI_ID=`supplier performance`.KPIID
and `supplier performance`.TenderID=tender.Tender_ID ;
END IF;
END

最佳答案

如果您需要基于两个表的查询,您应该使用联接,例如:

  SELECT `estimated_cost` 
FROM tender
INNER JOIN tender_request ON `tender`.`Tender_ID`=`tender_request`.`TenderID`

  SELECT `cost` 
FROM tender_request
INNER JOIN tender ON `tender`.`Tender_ID`=`tender_request`.TenderID

关于MySQL触发器比较不同表中的2个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48996184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com