MYSQL:使用另一个相关表中的值更新表

标签 mysql join sql-update

我有两个 MySQL 表,它们的结构如下:

table foo(
 foo_id varchar(32),
 field1 varchar(32),
 field2 varchar(32),
 bar_id varchar(32) 
);

table bar(
  bar_id varchar(32),
  field1 varchar(32),
  field2 varchar(32)
);

我想更新 foo 表,使 field1field2 的值与 bar 相同> 表。我尝试了以下两个查询,它们都运行没有错误,但没有得到我想要的结果:

UPDATE foo LEFT JOIN bar ON foo.bar_id = bar.bar_id 
SET foo.field1 = bar.field1 AND foo.field2 = bar.field2;

还有

UPDATE foo,bar SET foo.field1 = bar.field1 
AND foo.field2 = bar.field2 WHERE foo.bar_id = bar.bar_id

但都不起作用。我在这里缺少什么?

最佳答案

我想你可能对AND有疑问;应该用逗号代替。这样我认为您正在将 foo.field1 更新为 (bar.field1 AND foo.field2 = bar.field2) ( 的非零值之间的逻辑连接) bar.field1field2-s 相等),我很确定这不是您的意思。但没有测试;可能是错误的。

关于MYSQL:使用另一个相关表中的值更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866705/

相关文章:

MySQL 在线数据库

php - 如何用数组恢复MySQL表?

php - MySQL 表行不会更新

php - MySQL 表中的多重替换

php - 在多个sql表中选择一个名称

mysql - mysql 连接的重复结果

sql-server - 如何对总数求和但只保留多个名字中的一个

mysql - 尝试连接表 mySQL 时出错

jpa - JPQL 更新查询执行更新时事务需要异常

sql - 在 SQLite 中使用大小写更新命令