0

我无法将一个查询的输出用作另一个查询的值。问题是我需要使用以下查询获取一种产品的价格(已成功完成):

SELECT Cena FROM Proizvod WHERE ProzivodID = $PID

$PID 是一个 PHP 变量,这个查询工作得很好。当我想从买家的余额中减去产品的价格时,问题就来了。我尝试使用以下查询来做到这一点:

UPDATE Kupuvac SET Saldo = Saldo - ".$cena." WHERE KupuvacID=$KID

$cena 是一个 PHP 变量,它的值是第一个查询。

第二个查询根本不起作用,它不会返回错误消息,但不会改变买家的余额。


如果有人需要的话,一本简短的字典: Cena - Price; Proizvod - Product; Kupuvac - Buyer; Saldo - Balance.

提前致谢!

4

2 回答 2

2

您可以UPDATE在一个语句中执行操作:

UPDATE Kupuvac a
CROSS JOIN
(
    SELECT Cena FROM Proizvod WHERE ProzivodID = $PID
) b
SET a.Saldo = a.Saldo - b.Cena
WHERE a.KupuvacID = $KID
于 2012-07-07T19:58:12.647 回答
2

你不能把这些组合成一个查询吗?

UPDATE Kupuvac 
SET Saldo = Saldo - (SELECT Cena FROM Proizvod WHERE ProzivodID = $PID) 
WHERE KupuvacID = $KID
于 2012-07-07T19:59:07.627 回答