gpt4 book ai didi

mysql - 如何创建一个条件来自两个表的过程?

转载 作者:行者123 更新时间:2023-11-29 15:51:13 26 4
gpt4 key购买 nike

我想创建一个如下所示的过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `transformare_in_imprumut`()
MODIFIES SQL DATA
BEGIN
DECLARE stoc_actual INT(4);
SELECT stoc INTO stoc_actual FROM carti WHERE
carti.idCarte=rezervari.idCarte;
IF(stoc_actual >0) THEN
UPDATE carti set stoc=stoc-1 WHERE carti.idCarte=rezervari.idCarte;
INSERT INTO imprumuturi(idCarte)
SELECT idCarte FROM rezervari;
ELSE
UPDATE carti set stoc=stoc+1;
END IF;
END;

问题是我想在满足 WHERE 条件时更新 imprumuturi 表。但是这个过程不起作用,因为我正在比较两个不同表中的两个值。我的问题是:如何从两个表中获取两个值并在 WHERE 条件下进行比较。如有任何帮助,我们将不胜感激!

最佳答案

如果表之间有多行匹配,则无法将它们全部存储在单个变量中。

您可以使用游标循环遍历所有匹配的行,但更简单的方法是将 JOIN 放在 UPDATE 中。 LEFT JOIN 将允许您根据该行在另一个表中是否有匹配项来进行正确的更新。

UPDATE carti
LEFT JOIN rezervari ON carti.idCarte = reservari.idCart
SET carti.stoc = IF(reservari.idCart IS NULL, stoc+1, stoc-1);

INSERT INTO imprumuturi (idCart)
SELECT idCarte FROM rezervari;

关于mysql - 如何创建一个条件来自两个表的过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56758211/

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