这是两个SugarCRM表之间的更新查询,都是INNODB
看起来很简单,但运行时不会更新记录
查询执行正常,0行受影响
我们已经运行了一个select查询,以确保在id上匹配
也尝试过更新。。。选择变量
已经检查了这两个表的索引——存在并且显然是正确的
有人有什么建议吗。

UPDATE accounts new LEFT join  accounts_old old
ON (new.id = old.id)
SET new.billing_address_country = old.billing_address_country

谢谢你的意见。

最佳答案

除非有什么地方。。。为空时,更新查询中的外部联接将非常罕见。你确定这就是你想要的吗?
除此之外,这个查询没有任何问题。。。

DROP TABLE IF EXISTS accounts;

CREATE TABLE accounts(id INT NOT NULL PRIMARY KEY,billing_address_county VARCHAR(40) NOT NULL);

DROP TABLE IF EXISTS accounts_old;

CREATE TABLE accounts_old(id INT NOT NULL PRIMARY KEY,billing_address_county VARCHAR(40) NOT NULL);

INSERT INTO accounts VALUES (1,'Hale County');
INSERT INTO accounts VALUES (2,'Perry County');

INSERT INTO accounts_old VALUES (1,'Hale County');
INSERT INTO accounts_old VALUES (2,'Tuscaloosa County');


UPDATE accounts new
  JOIN accounts_old old
    ON old.id = new.id
   SET new.billing_address_county = old.billing_address_county;

Query OK, 1 row affected (0.01 sec)
   Rows matched: 2  Changed: 1  Warnings: 0

   mysql> SELECT * FROM accounts;
   +----+------------------------+
   | id | billing_address_county |
   +----+------------------------+
   |  1 | Hale County            |
   |  2 | Tuscaloosa County      |
   +----+------------------------+
   2 rows in set (0.00 sec)

mysql>

10-04 22:08
查看更多