使用Where子句到其他表的更新声明

时间:2013-08-25 08:25:37

标签: mysql sql

基本上我有一个更新语句,它需要更新表的两个字段,但依赖于引用数据库中其他表的where子句。

例如。

UPDATE TABLE_ONE 
SET VALUE_ONE=1,VALUE_TWO=2 
WHERE TABLE_TWO.ID = 1818 AND TABLE_TWO.POSITION = TABLE_THREE.ID AND TABLE_ONE = TABLE_THREE.VALUE = TABLE_ONE.ID;

我的问题是如何成功完成此操作。目前,我在where子句的第一个参数上获得了未知的列异常。

我希望这很清楚。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果没有看到所有表格的表格架构,很难分辨,但您可以尝试重写这样的更新

UPDATE table_one t1 JOIN table_three t3
    ON t1.id = t3.value JOIN table_two t2
    ON t3.id = t2.position
   SET t1.value_one = 1, value_two = 2 
 WHERE t2.id = 1818