Php 我需要在另一个mySQL查询中使用一个mySQL查询的输出(其值)

Php 我需要在另一个mySQL查询中使用一个mySQL查询的输出(其值),php,mysql,variables,sql-update,nested-queries,Php,Mysql,Variables,Sql Update,Nested Queries,我无法将一个查询的输出用作另一个查询的值。问题是,我需要获得一个产品的价格,该价格使用以下查询成功完成: 从Proizvod中选择Cena,其中ProzivodID=$PID $PID是一个PHP变量,此查询工作正常。当我想从买家的余额中减去产品的价格时,问题就来了。 我尝试通过以下查询来实现这一点: 更新Kupuvac集合Saldo=Saldo-.$cena。其中KupuvacID=$KID $cena是一个PHP变量,其值是第一个查询 第二个查询根本不起作用,它不会返回错误消息,但不会改变买

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

从Proizvod中选择Cena,其中ProzivodID=$PID $PID是一个PHP变量,此查询工作正常。当我想从买家的余额中减去产品的价格时,问题就来了。 我尝试通过以下查询来实现这一点:

更新Kupuvac集合Saldo=Saldo-.$cena。其中KupuvacID=$KID $cena是一个PHP变量,其值是第一个查询

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

如果有人需要一本简短的字典:Cena-Price;Proizvod-产品;库普瓦茨-买方;萨尔多-平衡

提前谢谢

您可以在一条语句中执行更新操作:

UPDATE Kupuvac a
CROSS JOIN
(
    SELECT Cena FROM Proizvod WHERE ProzivodID = $PID
) b
SET a.Saldo = a.Saldo - b.Cena
WHERE a.KupuvacID = $KID
您可以在一条语句中执行更新操作:

UPDATE Kupuvac a
CROSS JOIN
(
    SELECT Cena FROM Proizvod WHERE ProzivodID = $PID
) b
SET a.Saldo = a.Saldo - b.Cena
WHERE a.KupuvacID = $KID

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

更新库普瓦茨 设置Saldo=Saldo-从Proizvod中选择Cena,其中ProzivodID=$PID 其中KupuvacID=$KID
你不能把这些合并成一个查询吗

更新库普瓦茨 设置Saldo=Saldo-从Proizvod中选择Cena,其中ProzivodID=$PID 其中KupuvacID=$KID
如何检查第二个查询中的错误,以及是否可以检查受影响行的值?您使用的mysql api是什么?mysql、mysqli、PDO?ThanksI使用集成在xampp中的phpMyAdmin。您如何检查第二个查询中的错误以及是否可以检查受影响行的值?您使用的mysql api是什么?mysql、mysqli、PDO?ThanksI使用集成在xampp中的phpMyAdmin。它返回错误:1054-where子句@AndrewAlbertPetrovsky中的未知列“ProizvodID”,已修复。我原以为这只是一个打字错误。太好了,但如果另一个答案已经对你起作用了,你不应该不接受它!它返回错误:1054-已修复“where子句”@AndrewAlbertPetrovsky中的未知列“ProizvodID”。我原以为这只是一个打字错误。太好了,但如果另一个答案已经对你起作用了,你不应该不接受它!请注意,如果没有与ProzivodID=$PID条件匹配的行产品,如果我没有错的话,Saldo将被设置为NULL。您是对的,但是在这种情况下,产品是从下拉菜单中选择的,因此始终会有一行匹配ID。无论如何,这是一个很好的注释,它将在项目的进一步开发中派上用场。谢谢。请注意,如果没有与ProzivodID=$PID条件匹配的行产品,如果我没有错的话,Saldo将被设置为NULL。您是对的,但在这种情况下,产品是从下拉菜单中选择的,因此始终会有一行匹配ID。总之,这是一个很好的注释,它将在该项目的进一步开发中派上用场。非常感谢。