这是两个 SugarCRM 表之间的更新查询,都是 INNODB 看起来很简单,但运行时不会更新记录
查询执行正常,0 行受影响
我们运行了一个选择查询来确保我们在 ID 上有匹配 也试过更新...选择变体
检查了两个表的索引——存在并且显然没问题 有没有人有任何提示。
UPDATE accounts new LEFT join accounts_old old
ON (new.id = old.id)
SET new.billing_address_country = old.billing_address_country
感谢您的任何想法。
最佳答案
除非伴随着 WHERE... IS NULL,UPDATE 查询中的 OUTER JOIN 非常罕见。你确定那是你想要的吗?
除此之外,这个查询没有任何问题......
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>
关于MySQL更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17581528/