使用Join减少-1(PHP,MySQL)

时间:2014-04-17 18:30:29

标签: php mysql join

这里有另一个MySQL问题。我试图根据存储在另一个表中的产品ID将product_qty减少-1。在tbl_basket中,我有一个名为product_id的列,其中包含一个产品ID,该列也位于tbl_products中的product_id列中。我想根据tbl_basket中的产品ID将product_qty减少-1,其中User与会话相同。到目前为止,我有:

$purchase = mysql_query("
UPDATE tbl_products a SET a.product_quantity = a.product_quantity -1
WHERE a.product_id IN (SELECT product_id
  from tbl_basket WHERE customer_id = '" . $_SESSION['user'] . "'");

这对我不起作用。它不会降低product_qty。任何想法可能是什么?谢谢。

Patrick Q提到的这是一个问题。

工作查询是:

$purchase = "UPDATE tbl_products a SET a.product_quantity = a.product_quantity -1 WHERE a.product_id IN (SELECT product_id from tbl_basket WHERE customer_id = '" . $_SESSION['user'] . "')";
$debug = mysql_query($purchase) or trigger_error(mysql_error()." ".$purchase);

2 个答案:

答案 0 :(得分:1)

您错过了子查询的右括号。

$purchase = mysql_query("
UPDATE tbl_products a SET a.product_quantity = a.product_quantity -1
WHERE a.product_id IN (SELECT product_id
  from tbl_basket WHERE customer_id = '" . $_SESSION['user'] . "');");

答案 1 :(得分:0)

您缺少子查询的括号:

$purchase = mysql_query("
UPDATE tbl_products a SET a.product_quantity = a.product_quantity -1
WHERE a.product_id IN (SELECT product_id
  from tbl_basket WHERE customer_id = '" . $_SESSION['user'] . "')");