带有 WHERE 子句和 INNER JOIN 的 MySQL 更新查询不起作用
本教程将介绍带有 WHERE 子句和 INNER JOIN 的 MySQL 更新查询不起作用的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。
问题描述
在我的更新查询中似乎无法进入下一步.我能够成功查看与选择相关的列没问题:
SELECT sales_flat_order_grid.entity_id,sales_flat_order_grid.increment_id,sales_flat_order.coupon_code
FROM sales_flat_order_grid
INNER JOIN sales_flat_order ON sales_flat_order_grid.entity_id = sales_flat_order.entity_idWHERE sales_flat_order_grid.increment_id = "12345678";
这显示了与正确的 increment_id 相关的 3 列.
下一步是更新 sales_flat_order.coupon_code 字段.这是我的尝试:
UPDATE sales_flat_order
INNER JOIN sales_flat_order ON sales_flat_order_grid.entity_id = sales_flat_order.entity_id
WHERE sales_flat_order_grid.increment_id = "12345678"
SET coupon_code = "newcoupon";
但我不断收到 错误消息.有人能指出我正确的方向吗?
推荐答案
查询应该如下,你已经加入了同一个表,因此存在唯一别名的问题.我添加了表格别名以提高可读性.
UPDATE
sales_flat_order sfo
INNER JOIN sales_flat_order_grid sfog
ON sfog.entity_id = sfo.entity_id
SET sfo.coupon_code = "newcoupon"
WHERE sfog.increment_id = "12345678" ;
好了关于带有 WHERE 子句和 INNER JOIN 的 MySQL 更新查询不起作用的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。