LEFT JOIN更新

时间:2012-08-10 05:55:28

标签: mysql sql join

您好我试图在谷歌搜索一个答案,但即使我不是第一个有这个问题,我也没有找到。对不起,如果我错了......

我想把一些表的值放在另一个有条件和左连接的表中。 这是我的查询,但它不起作用,我真的不明白为什么,。

UPDATE `table1`
SET `table1`.`field1` = `table2`.`value`
FROM  `table1`
LEFT JOIN `table2` ON `table2`.`idt1`=`table1`.`id`
WHERE `id`='35520'
它说:       #1064 - 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在'FROM附近使用正确的语法 在第3行。

如果你有任何建议我会很高兴听到这些,谢谢!

巴斯蒂安

2 个答案:

答案 0 :(得分:3)

你试过这样的吗?

UPDATE `table1`
SET `table1`.`field1` = (
  SELECT `table2`.`value`
  FROM `table2`
  WHERE `table2`.`idt1`=`table1`.`id`
)
WHERE `id`='35520'

答案 1 :(得分:1)

你的语法错了。如果您的SQL风格支持它,请尝试:

UPDATE `table1`
LEFT JOIN `table2` ON `table2`.`idt1`=`table1`.`id`
SET `table1`.`field1` = `table2`.`value`
WHERE `id`='35520'

否则你需要一个子查询:

UPDATE `table1`
SET `table1`.`field1` = (SELECT `table2`.`value`
                         FROM `table2`
                         WHERE `table2`.`idt1`=`table1`.`id`)
WHERE `id`='35520'