0

嗨,我试图在谷歌中搜索答案,但即使我不是第一个遇到这个问题的人,我也没有找到。如果我错了,请原谅我...

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

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

它说:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 3 行的 'FROM 附近使用。

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

巴斯蒂安

4

2 回答 2

3

你试过这样吗?

UPDATE `table1`
SET `table1`.`field1` = (
  SELECT `table2`.`value`
  FROM `table2`
  WHERE `table2`.`idt1`=`table1`.`id`
)
WHERE `id`='35520'
于 2012-08-10T05:57:52.617 回答
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'
于 2012-08-10T05:58:39.443 回答