【问题标题】:Update 2 tables更新 2 个表
【发布时间】:2013-12-06 16:22:15
【问题描述】:

我在 oscommerce 上。我需要更新我的 products_quantity,但我只有 products_name

第一个表 产品 --products_id --products_quantity

PRODUCTS_DESCRIPTION --products_id --products_name

我的第一次测试:

UPDATE `products` 
SET `products_quantity`='8'
where `products_id` = (SELECT `products_id` FROM `products_description` WHERE `products_name`='TOP CAISSE PLETSCHER')

语法错误

我的第二个测试

UPDATE `products` 
SET `products_quantity`='8'
where `products_id` = "SELECT `products_id` FROM `products_description` WHERE `products_name`='TOP CAISSE PLETSCHER'"

没有错误,但我的产品没有更新。我认为我的 mysql 版本不支持这种方法:3.23.58

我的第三次测试:

UPDATE `products`
SET `products`.`products_quantity`='8'
FROM `products` 
INNER JOIN `products_description`
WHERE `products`.`products_id` = `products_description`.`products_id`
AND `products_description`.`products_name`='TOP CAISSE PLETSCHER'

我有这个错误:

You have an error in your SQL syntax near 'FROM  `products`  INNER  JOIN  `products_description`  WHERE  `products`.`produc' at line 1

我的解决方案已经用完了。如果您能告诉我出了什么问题,我将不胜感激。

我正在使用 MySQL 3.23.58

【问题讨论】:

  • 我认为你可以做到UPDATE products INNER JOIN products_description SET products.products_quantity='8' WHERE...
  • 那个 MySQL 版本正确吗? MySQL 3?!我们现在是 5.6。
  • 您使用的软件来自 ca。 2000!升级。
  • 我知道我有一个过时的版本,但我不是系统管理员。将测试你的答案火箭。感谢您的帮助。
  • 已经做了另外两个测试但是没有用。 pastie 1) FROM 附近的错误 2) products_description 附近的错误

标签: mysql subquery inner-join


【解决方案1】:

我猜你正在使用 PHP 连接到数据库。 你不能只使用两个查询吗?

首先,

SELECT `products_id` FROM `products_description` WHERE `products_name`='TOP CAISSE PLETSCHER'

,然后将结果保存到数组变量中,并在循环更新中,例如:

foreach($result_array as $id) {
    UPDATE `products` 
    SET `products_quantity`='8'
    WHERE `products_id` = $id
}

如果有帮助,请尝试告诉我们。

【讨论】:

  • 我的最后一条评论:“这个 mysql 版本是不可能的。我用 2 个查询的 php 脚本解决了我的问题。”但是谢谢你的回答 ;)
  • 哦。好的。我没有注意到“显示所有 cmets”,所以我不知道 :) 但是,问题仍未得到解答,您可以自行发布答案并接受;)
  • 这是相同的结论。我不会因为浪费了 6 个小时的时间在没有此功能的 mysql 版本上进行多次更新而自责。祝你有美好的一天;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多