繁体   English   中英

错误:#1242-子查询返回多于1行

[英]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')

实际上,我不知道问题出在哪里。 这是我在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

我的第一个表:Tender_request( Tender_Request_IDCostDocumentStatussupplierIDTenderID

我的第二张表:KPI( KPI_IDCostDeliveryServiceQualityExperiencesupIDtenID

第三张表:投标(投标Tender_IDNameDescriptionEstimated_cost Tender_ID

您是否检查过此查询返回多少行? 我敢肯定不止1。

SET  @Ecost=( SELECT `estimated_cost` 
  FROM tender
  INNER JOIN tender_request ON `tender`.`Tender_ID`=`tender_request`.`TenderID`);

尝试在末尾添加LIMIT 1

尝试以下方法:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM