[英]error: #1242 - Subquery returns more than 1 row
each time I tried to run this query it gives this error 1242 - Subquery returns more than 1 row 每次尝试运行此查询时,都会出现此错误1242-子查询返回的行数超过1
INSERT INTO `tender_request` (`Tender_Request_ID`, `Cost`, `Document`, `Status`, `supplierID`, `TenderID`) VALUES ('5556', '900', NULL, 'Active', '1', '652')
actually, I don't know where is the problem. 实际上,我不知道问题出在哪里。 and this is my code on tender_request table:
这是我在tender_request表上的代码:
BEGIN
SET @Ecost=( SELECT `estimated_cost`
FROM tender
INNER JOIN tender_request ON `tender`.`Tender_ID`=`tender_request`.`TenderID`);
IF(@Ecost>new.Cost) then
UPDATE `kpi` INNER JOIN tender_request on tender_request.TenderID=kpi.tenID
set kpi.Cost=10 where TenderID=new.TenderID limit 1;
END IF;
END
My first table : Tender_request( Tender_Request_ID
, Cost
, Document
, Status
, supplierID
, TenderID
) 我的第一个表:Tender_request(
Tender_Request_ID
, Cost
, Document
, Status
, supplierID
, TenderID
)
My Second table : KPI( KPI_ID
, Cost
, Delivery
, Service
, Quality
, Experience
, supID
, tenID
) 我的第二张表:KPI(
KPI_ID
, Cost
, Delivery
, Service
, Quality
, Experience
, supID
, tenID
)
Third table : Tender( Tender_ID
, Name
, Description
, Estimated_cost
) 第三张表:投标(投标
Tender_ID
, Name
, Description
, Estimated_cost
Tender_ID
)
Have you checked how many rows this query return? 您是否检查过此查询返回多少行? I'm sure more than 1.
我敢肯定不止1。
SET @Ecost=( SELECT `estimated_cost`
FROM tender
INNER JOIN tender_request ON `tender`.`Tender_ID`=`tender_request`.`TenderID`);
Try to add LIMIT 1
at the end. 尝试在末尾添加
LIMIT 1
。
Try this instead: 尝试以下方法:
BEGIN
SET @Exist=( SELECT 1
FROM tender
INNER JOIN tender_request ON
`tender`.`Tender_ID`=`tender_request`.`TenderID`
WHERE `estimated_cost`>new.Cost AND
`tender`.`Tender_ID`=new.TenderID Limit 1;
IF(@Exist=1) then
UPDATE `kpi` INNER JOIN tender_request on
tender_request.TenderID=kpi.tenID
set kpi.Cost=10 where TenderID=new.TenderID;
END IF;
END
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.