带有 WHERE 子句和 INNER JOIN 的 MySQL 更新查询不起作用

本教程将介绍带有 WHERE 子句和 INNER JOIN 的 MySQL 更新查询不起作用的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

带有 WHERE 子句和 INNER JOIN 的 MySQL 更新查询不起作用 教程 第1张

问题描述

在我的更新查询中似乎无法进入下一步.我能够成功查看与选择相关的列没问题:

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 更新查询不起作用的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。