UPDATE product INNER JOIN erpproduct on erpproduct.ProductId = product.ProductId SET product.ProductTypeId = (SELECT productTypeId FROM productType WHERE producttype.producttypeName = 'MyProductTypeName' LIMIT 1 ), WHERE erpproduct.ErpProductId = 123123123;
我收到错误:"您的SQL语法出错了。查看与您的MySQL服务器版本相对应的手册,以便在“'选择产品类型..."
附近使用正确的语法MySQL版本是4.0.27,似乎MySQL不允许Select指定SET值。没有SELECT一切都很好。是这种情况还是我在声明中做错了什么?
答案 0 :(得分:1)
这个极端旧版本的MySQL不支持子选择。您至少需要MySQL v4.1。
我引用了manual of those old versions的相关部分:
对于4.1之前的MySQL版本,有必要解决或 避免使用子查询。在许多情况下,子查询可以 使用连接和其他方法成功重写。见章节 12.2.8.11,“将子查询重写为早期MySQL版本的连接”。